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 仅仅监控他拥有的对象,并在这些对象添加或者删除的时候发出通知。