所以我在一个页面上说了5个选择列表。我有选项绑定到它们中的每一个,它们都绑定到相同的数据集,例如状态模型。
一旦某人改变其中一个选项的状态,我想对其采取行动。
有什么想法吗?
谢谢!
答案 0 :(得分:1)
通常,当值更改时,您使用ko.computed
来处理事情:
http://knockoutjs.com/documentation/computedObservables.html
但是如果您想要观察特定观察值何时发生变化,请使用subscribe
:
http://knockoutjs.com/documentation/observables.html
如果遇到问题,您可以分叉并更新此jsfiddle以向我发送代码示例: http://jsfiddle.net/JasonMore/p6Vcc/
答案 1 :(得分:0)
如果我正确地理解了你的问题,我想你每个选择列表都有一个ko.observable变量来跟踪当前选择的值。 如果您希望每次更改其中一个索引时执行操作,则可以使用subscribe函数:
var viewModel = {
firstSelectListIndex : ko.observable(), // bound to the first select list value
secondSelectListIndex : ko.observable(),
...
};
然后,如果您有兴趣在用户更改第一个选择列表的状态时采取措施,您可以执行以下操作:
viewModel.firstSelectListIndex.subscribe(function(newValue) {
// your code
});
并且您拥有与列表中新选定项目相关联的新值,作为参数传递。