博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Knockout】三、data-bind声明式绑定
阅读量:4947 次
发布时间:2019-06-11

本文共 2602 字,大约阅读时间需要 8 分钟。

1.visible绑定

visible bind

2.text绑定

visible bind

3.html绑定

4.CSS绑定

css bind

view会随着监控属性的变化自动添加或者删除元素上的CSS class。

5.style绑定

css bind

view会随着监控属性的变化自动添加或者删除该元素的style值。

6.attr绑定

7.click绑定

注意:

      (1)默认情况下,knockout会阻止默认事件的执行,例如,当你点击一个a元素,它在执行完viewModel的自定义事件后不会连接到href地址。如果想继续执行默认事件,可在click的自定义函数里返回true。

      (2)默认情况下,knockout允许click事件继续往更高层的事件句柄上冒泡执行,例如:

一旦设置了clickBubble为false时,则会阻止冒泡。

8.event绑定

mouse over me
mouse over bind

注意:event绑定也和click绑定一样,默认情况下,knockout会阻止默认事件的执行,在自定义函数里返回true可继续执行默认事件,knockout同样会允许事件冒泡,设置mouseoverBubble为false可阻止事件冒泡,其他事件类似。

 9.submit绑定

knockout会吧整个form表单元素传递到自定义函数中

form bind..........

注意:默认情况下,knockout会阻止form表单的默认submit动作,即浏览器不会提交表单到服务器,而是只会执行你的submit句柄,如果想继续执行form表单的submit操作,可在句柄里返回true。

10.enable、disable绑定

enable、disabled绑定使DOM元素只有在参数值为 true的时候才enabled、disabled。

11.value绑定

关联dom元素的值到viewModel上。

例如:用户在编辑表单控件的时候,viewModel属性会自动更新,同样viewModel的属性更新的时候,页面上的值也会随之更新。

    

valueUpdate参数:

  "change"(默认值) : 失去焦点或者select元素被选中的时候更新viewModel;

  "keyup" : 用户在敲完一个字符后立即更新viewModel;

  "keypress" : 按下键盘时开始更新viewModel;

  "afterkeydown" : 用户开始输入字符时就开始更新viewModel;

例如

注意:knockout对下拉菜单drop-down list(如select)做value绑定时,这个值可以是任意js对象,而不必非是字符串。

12.checked绑定

checked绑定时关联到checkbox(<input type="checkbox">)或者radio button(<input type="radio">);

    

checkbox 关联到数组:

当参数是一个数组的时候,如果元素的值(value)存在于数组,ko将设置元素为checked,否则设置为unchecked,反之,如果用户对元素进行checked或者unchecked,KO就会将元素的值添加进数组或者从数组中删除。

radio:

 13.options绑定

options绑定控制什么样的options在drop-down列表里(如select或者multi-select),并且不能用于select之外的元素,关联的数据时数组(observable数组);

    

注意:如果想要设置或者获取select列表的值应用value绑定,对于multi-select用selectedOptions绑定。

drop-down列表里可以是任意的javascript对象,不仅是字符串:

该参数是一个observa数组,对于每一个item,ko都会将它们作为一个option添加到select里,之前的options都会被删除。

参数:

    optionsCaption:drop-down列表里默认选择的项目,它的值是字符串类型的,value为undefined。

    例如:

   如果myChosenValue为undefined,那么默认项就会被选中。

    optionsText : drop-dwon列表里显示的文本;

    optionsValue : 和optionsText类似, 你也可以通过额外参数optionsValue来声明对象的那个属性值作为该<option>的value值。

        经典场景:如在更新options的时候想保留原来的已经选择的项。例如,当你重复多次调用Ajax获取car列表的时候,你要确保已经选择的某个car一直都是被选择上,那你就需要设置optionsValue为“carId”或者其它的unique标示符,否则的话KO找不知道

    之前选择的car是新options里的哪一项。

转载于:https://www.cnblogs.com/baicj/p/5075912.html

你可能感兴趣的文章
我的2014-相对奢侈的生活
查看>>
Java设计模式
查看>>
mysql-This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
查看>>
基本概念复习
查看>>
红黑树
查看>>
【数据库】
查看>>
WindowManager.LayoutParams 详解
查看>>
安卓中数据库的搭建与使用
查看>>
.NET 设计规范--.NET约定、惯用法与模式-2.框架设计基础
查看>>
sql 内联,左联,右联,全联
查看>>
C++关于字符串的处理
查看>>
Breaking parallel loops in .NET C# using the Stop method z
查看>>
[轉]redis;mongodb;memcache三者的性能比較
查看>>
让你的WPF程序在Win7下呈现Win8风格主题
查看>>
构建Docker Compose服务堆栈
查看>>
浮点数内存如何存储的
查看>>
JsonCpp 的使用
查看>>
问题账户需求分析
查看>>
hp 服务器通过串口重定向功能的使用
查看>>
此博客不再发表对自己私事的看法
查看>>