是否可以在'click'绑定中设置observable?
<div data-bind="click:toolbarBottomTabs_selectedIndex(0)"
&GT;
其中toolbarBottomTabs_selectedIndex是一个可观察的。
答案 0 :(得分:7)
试试这个:
<div data-bind="click: toolbarBottomTabs_selectedIndex.bind($data, 0)">
答案 1 :(得分:2)
编写“click:function(){...}”并不是最好的解决方案。我相信即使是更多的代码行,这也会好一些。
<div data-bind="click: resetIndex">....</div>
function resetIndex(){
toolbarBottomTabs_selectedIndex(0);
}
答案 2 :(得分:1)
有可能,但我不认为这是一个正确的选择:
<div data-bind="click:toolbarBottomTabs_selectedIndex.bind($data, 0)">
Bind
允许调用具有特定值的函数(observable是一个函数)。 bind的第一个参数是this
对象的值,第二个是函数的第一个参数。
答案 3 :(得分:0)
我同意Anders关于这个......
MVVM的重点是将视图与视图逻辑分离,以便对其进行测试,重用等。
以这种方式操纵视图模型中包含的数据将起作用,但这并不理想。
<div data-bind="click: function() { toolbarBottomTabs_selectedIndex(0) }">
Knockout提供了一种更简洁的方法来实现unobtrusive event handler
在你的例子中,你应该做这样的事情......
<div id="clickme">...</div>
...然后在您的javascript中包含以下内容
$('#clickme').on('click', function(e) {
ko.dataFor(this).toolbarBottomTabs_selectedIndex(0);
});