Html 设置值时调用订阅事件
我已将html中的select列表绑定到可观察数组Html 设置值时调用订阅事件,html,knockout.js,observable,Html,Knockout.js,Observable,我已将html中的select列表绑定到可观察数组 <select data-bind="options: myData, optionsText: 'Name', value: selectedId"></select> 我不想在通过编程设置值时调用subscribe事件,只想在用户从列表中选择某个内容时调用 有可能吗?找不到好的例子 更新1 我用这种方式将值设置为我的可观察selectedId selectedId(ko.utils.arrayFirst(data
<select data-bind="options: myData, optionsText: 'Name', value: selectedId"></select>
我不想在通过编程设置值时调用subscribe事件,只想在用户从列表中选择某个内容时调用
有可能吗?找不到好的例子
更新1
我用这种方式将值设置为我的可观察selectedId
selectedId(ko.utils.arrayFirst(data(), function(item) {
return item.id=== 5;
}));
因此,我认为,如果在实际订阅之前设置初始值,则不应触发订阅事件。例如:
selectedId.subscribe(function (row) {
// some logic for retrieving data
});
函数ViewModel(){
var self=这个;
self.selectedID=ko.observable();
self.selectedID(10);//这不会触发事件,因为我们尚未订阅
self.selectedID.subscribe(函数(值)){
警报(“用户更改的值”);
});
}
应用绑定(新的ViewModel())代码>
如何设置selectedId
的值?但当我设置值时,它会立即调用其订阅事件:当然会。值已更改。设置初始值后再连接订阅怎么样?@MattBurland我们怎么做?@haim770我将其设置为selectedId(somevalue)您将行selectedId(somevalue)
放在行selectedId.subscribe之前(//…
@Happy:你的更新没有任何区别。发布一些实际演示问题的代码看看这把小提琴有一些问题。出现未定义的错误。这就是我在代码中几乎要做的。我很确定,当你点击小提琴中的importData按钮时,订阅事件将被激活lled@Happy:我已更新您的,以修复您未定义的错误。您从未分配过self
。您的问题完全可以通过我在第二个解决方案中的解决方案来解决。我建议您编辑您的问题,将您的问题包括在小提琴中,因为您的初始问题完全不清楚。当vie构建w模型,但直到稍后响应事件时才设置selectedGroup
。