我正在尝试根据各种UI元素的更改事件启用保存按钮。
如果发生以下任何情况,则需要启用保存按钮 1)输入数据变化 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