Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 设置值时调用订阅事件_Html_Knockout.js_Observable - Fatal编程技术网

Html 设置值时调用订阅事件

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

我已将html中的select列表绑定到可观察数组

 <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