是否可以在“点击”绑定中设置 observable?
<div data-bind="click:toolbarBottomTabs_selectedIndex(0)"
>
其中toolbarBottomTabs_selectedIndex 是一个可观察的。
是否可以在“点击”绑定中设置 observable?
<div data-bind="click:toolbarBottomTabs_selectedIndex(0)"
>
其中toolbarBottomTabs_selectedIndex 是一个可观察的。
尝试这个:
<div data-bind="click: toolbarBottomTabs_selectedIndex.bind($data, 0)">
编写“click: function(){...}”并不是最好的解决方案。我相信这会更好一些,即使它是几行代码。
<div data-bind="click: resetIndex">....</div>
在您的视图模型中定义:
function resetIndex(){
toolbarBottomTabs_selectedIndex(0);
}
这是可能的,但我认为这不是一个正确的选择:
<div data-bind="click:toolbarBottomTabs_selectedIndex.bind($data, 0)">
Bind
允许以特定值调用您的函数(observable 是一个函数)。bindthis
的第一个参数是对象的值,第二个是函数的第一个参数。
我同意安德斯的观点……
MVVM 的重点是将视图与视图逻辑解耦,以便对其进行测试、重用等。
以这种方式操作视图模型中包含的数据是可行的,但是并不理想。
<div data-bind="click: function() { toolbarBottomTabs_selectedIndex(0) }">
Knockout 提供了一种更简洁的方法来使用不显眼的事件处理程序来实现这一点
在你的例子中,你应该做这样的事情......
<div id="clickme">...</div>
...然后在您的 javascript 中包含以下内容
$('#clickme').on('click', function(e) {
ko.dataFor(this).toolbarBottomTabs_selectedIndex(0);
});