为多个事件启用保存按钮 - 输入更改和列表框大小更改

时间:2014-08-29 00:49:55

标签: knockout.js knockout-mapping-plugin

我正在尝试根据各种UI元素的更改事件启用保存按钮。 enter image description here

如果发生以下任何情况,则需要启用保存按钮 1)输入数据变化 2)或者如果用户列表大小的城市发生变化。

如何跟踪列表大小更改事件? 和 如何为淘汰赛中的两个事件启用保存按钮?

2 个答案:

答案 0 :(得分:0)

尝试使用订阅活动。有一个可观察的说长度并将其设置为此处的长度。

this.myObservable.subscribe(function(previousValue){
    //get previousval length and set it to another observable say prevlength
}, this, "beforeChange");

再次使用subscribe而不更改,并检查prevlength与当前长度。 使用一个observable say shouldEnable并将长度与prevlength进行比较。如果长度更改,则更新shouldEnable为true或设置为false。

根据条件禁用概念,您可以查看Enable condition for click binding

答案 1 :(得分:0)

您应该使用计算

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