tua*_*nvt 3 javascript knockout-mapping-plugin knockout-2.0 knockout.js
这是我的jsfiddle插图:http: //jsfiddle.net/hawaii/gN6CT/10/
我有一个json对象列表,我想使用jquery模板绑定到ul中,在每个li中我都有一个每个项目的复选框,以及项目详细信息.我希望它的工作方式是:
当用户单击复选框时,该项目将更新为选定的列表(此工作正常)
当用户点击项目的详细信息时,该项目将是所选项目,我将在右侧显示所有详细信息.这就是我将项目细节放在元素中的原因.
正如您从小提琴中看到的那样,它不按照我希望的方式工作,即使首次应用viewModel也会调用click绑定,当我单击复选框时,它也会调用click事件.
请你淘汰大师帮我吧.谢谢
我看到几件小事:
1-你不应该同时使用checked和value绑定相同的元素.该value绑定将附加的事件处理程序,如将在本checked装订.在这种情况下,您只想确保value设置属性而不处理任何事件,因此您可以执行以下操作:checked:$parent.checkedPeople, attr: { value: Id }
2- click绑定需要对函数的引用,而不是正在执行的函数的结果.所以,你通过了:click: $parent.selectPerson(Id()).这将在绑定期间执行该函数并尝试绑定结果(除非结果实际上是函数,否则将无效).另一种方法是:click: function() { $parent.selectPerson(Id()); }.但是,在标记中使用匿名函数是很难看的,所以更好的选择就是简单地做:click: $parent.selectPerson.电流$data将作为第一个参数传递,您可以读取Id它.
这是一个更新的小提琴:http://jsfiddle.net/rniemeyer/gN6CT/11/
| 归档时间: |
|
| 查看次数: |
5024 次 |
| 最近记录: |