使用Knockout的注意点

1.值更改触发时间

更改view后,焦点离开当前dom元素,view-model的值就改变。你可以设置valueUpdate: "afterkeydown"使得view值改变,view-model值立马改变(类似于onkeyup事件)。

更改view-model后,view的值立马改变。

2.注意引用传递和值传递

值传递,最常见的就是你model类型是string和number,于是你改了model的值,view-model不变。

引用传递,最常见的就是Array类型,你的Model类型Array数据,shift()了,你的view-model改变,你的view也改变了。

3.select元素的单击事件

select元素,你绑定了click事件,其实是双击事件,它的单击事件是change。

4.foreach绑定

一,要求的数组格式是[{key:value1},{key:value2}] ,这可能与你数据库保存的数组格式不同。于是,你需要个转化函数。

二,如果你想绑定[value1,value2,value3]这种数组格式,要用$data。但是,这样只能显示数据,你在view里修改了数据,不会影响到view-model,因为这是值传递。

三,$parent概念,当前对象所在集合了,经常用于remove。$root概念,就是集合a包集合b包集合c,集合c的$root就是集合a,集合c的$parent就是集合b。

5.with绑定

foreach绑定的是数组,with绑定的则是对象。

6.自定义绑定

这下你牛B了,value绑定,text绑定都只是knockout自带的,你也写出yourname绑定。


合乎自然而生生不息。。。
原文地址:https://www.cnblogs.com/samwu/p/2483685.html