我是JavaScript和 knockout.js 的新手。我的问题如下:
<ul data-bind="foreach: myOuterArray">
<li>
[...]
<table>
<tbody data-bind="foreach: a.myInnerArray">
[...]
</tbody>
</table>
<button class="mybutton" data-bind="">Add items to myInnerArray</button>
</li>
</ul>
我遍历myOuterArray,其项目(类型a的对象)也有内部数组。在表示myInnerArrays项后,我为每个myOuterArray项添加一个按钮。该按钮打开一个带有选择列表的jQuery UI对话框。现在,此按钮应该将对话框中的内容添加到相应的myInnerArray中。也许我今天的速度有点慢,但我真的不知道如何在我的viewmodel中设置.mybutton的按钮监听器。 如果这很重要,所有字段都是可观察的。
答案 0 :(得分:0)
仅仅使用按钮上的点击装订是否无效?
<button class="mybutton" data-bind="click: handlerMethod">Add items to myInnerArray</button>
我认为处理程序与myOuterArray
observable在同一个viewModel中,因此绑定更可能是click: $parent.handlerMethod
在此方法中,您可以接受一个数据参数,该参数将根据您的HTML结构显示在当前的myOuterArray项目中。
handlerMethod: function(currentOuterArrayItem, event) {
//do stuff
}
答案 1 :(得分:0)
按钮的上下文是myOuterArray的当前元素,因此如果类型A作为名为typeAFoo的函数,它应该看起来像
data-bind="click: typeAFoo"
你的问题不涉及jQuery UI所以删除该标签,或编辑问题,如果你真的有关于ko与jQuery UI的问题