knocout.js

单向绑定和双向绑定得区别   双向绑定就是在数据层面得js里面增加了ko.observable的一个方法   用来监听数据变量得改变    

初始化的knocout的使用是ko.applyBindings()这个方法

 

 

单向绑定:(jsp + js)

<div>
<p>First name: <input data-bind="value: firstName" /></p>
</div>
<script>
function ViewModel() {
this.firstName = "Tommy";
}
ko.applyBindings(new ViewModel());
</script>
双向绑定:(jsp + js)

<div>
<p>First name: <input data-bind="value: firstName" /></p>
</div>
<script>
function ViewModel() {
this.firstName = ko.observable("Tommy");
}
ko.applyBindings(new ViewModel());
</script>

 

beforechange事件是不是钩子呢  是不是knocout里面得钩子呢?

 

input 输入的绑定的值  使用data-bind:textinput比使用Value好一点  反映流畅一点

 

使用ko.observable监控的对象都是真实的function函数。是函数不是函数的属性也不是别的什么鬼东西  就是函数

如果绑定得函数想要传参数的话  使用匿名函数的方式   <input data-bind="event: { mouseover: function(event) { viewModel.myFunction(event, 'param1', 'param2') } }">这种

和这种<input data-bind="click: function() { viewModel.myFunction('param1', 'param2') }">的情况

 

函数的arguments和this   arguments 有一个名字叫callee的属性,这是一个指针,指向这个argumnets对象的函数       这么一说的话只有枚举才能使用这个方法

 

observable绑定超链接   链接的地址要写对不能出错

 

你可以通过额外的绑定clickBubble来禁止冒泡   data-bind:"clickBubble:false"    这种格式

 

1     创建带有监控属性的view model

2     使用依赖监控属性(Dependent Observables)

3     使用observable数组

就是这样的三种监控双向绑定的方式      第一种是方法对应的一个对象  第二种是依赖属性  第三种是数字对象单个的改变不跟着改变他是对象的集合,一个observableArray 仅仅监控他拥有的对象,并在这些对象添加或者删除的时候发出通知。

 

posted @ 2019-05-18 22:58  菩萨低眉  阅读(226)  评论(0编辑  收藏  举报