我想知道下拉列表中的前一个值是什么。
在下面的html中,我可以设置选项和当前选择的。
<select data-bind="options: group_128,
optionsText: 'description',
value: selectedgroup_128,
event: { change: selectionChanged_group_128 }">
</select>
我在Javascript / viewModel中执行:
selectionChanged_group_128 = function (data, event) {
self.addItemClicked2(self.selectedgroup_128, event)
};
此时我想知道之前选择的项目将其发送到addItemClicked2。
答案 0 :(得分:3)
您可以订阅observable以在更改之前获取值:
self.selectedgroup_128.subscribe(function(oldValue) {
self.selectedgroup_128.previousValue = oldvalue;
}, null, "beforeChange");
现在您可以像这样获得之前的值:
self.selectedgroup_128.previousValue
答案 1 :(得分:2)
为什么不改变模型以将新值存储为先前值?
var ViewModel = function() {
this.group_128 = ko.observable([{description:"first"},{description:"second"}]);
this.selectedgroup_128 = ko.observable("first");
this.prevgroup_128 = null;
this.selectionChanged_group_128 = function(val) {
alert("Now I'm " + this.selectedgroup_128().description + " but I was " + this.prevgroup_128);
this.prevgroup_128 = this.selectedgroup_128().description;
}
};