我试图启用基于各种UI元素的更改事件的保存按钮。需要启用 为多个事件启用保存按钮 - 输入更改和列表框大小更改
保存按钮,如果以下任一情况 1)输入数据的变化 2),或者如果用户列表的大小变化的城市。
如何跟踪列表大小更改事件? 和 如何在淘汰赛中启用两个事件的保存按钮?
我试图启用基于各种UI元素的更改事件的保存按钮。需要启用 为多个事件启用保存按钮 - 输入更改和列表框大小更改
保存按钮,如果以下任一情况 1)输入数据的变化 2),或者如果用户列表的大小变化的城市。
如何跟踪列表大小更改事件? 和 如何在淘汰赛中启用两个事件的保存按钮?
你应该使用一个计算
this.canSave = ko.computed(function() {
return this.observableOne() === "foo" && this.observableTwo() === "bar";
}, this);
编辑:或者使用肮脏的逻辑就像 http://www.knockmeout.net/2011/05/creating-smart-dirty-flag-in-knockoutjs.html
尝试使用订阅事件。有一个可观察的说prevlength并设置它在这里的长度。
this.myObservable.subscribe(function(previousValue){
//get previousval length and set it to another observable say prevlength
}, this, "beforeChange");
并再次使用订阅没有beforechange,并检查prevlength与当前长度。 使用observable say shouldEnable并将长度与prevlength进行比较。如果更改的长度更新应为true或设置为false。
以及基于条件禁用的概念,你可以检查Enable condition for click binding
感谢您的直接。我在这个 [小提琴](http://jsfiddle.net/noppanit/b3ky5/103)上找到了类似的解决方案, – 2014-08-29 14:18:47