Javascript 使用ko.computed绑定下拉选项时出现问题

Javascript 使用ko.computed绑定下拉选项时出现问题,javascript,knockout.js,Javascript,Knockout.js,我有一个模板,它有一个下拉列表(使用自定义库),如下所示: <select id="selectmyField" data-bind="libraryComponent: { component: 'libSelect', options: myViewModel.myFieldOpts, value: myViewModel.myFieldSelected }"> </select> 我已经调试过了,可以看到带有值/标签属性的myFieldA

我有一个模板,它有一个下拉列表(使用自定义库),如下所示:

<select id="selectmyField" data-bind="libraryComponent: 
  { component: 'libSelect', 
    options: myViewModel.myFieldOpts, 
    value: myViewModel.myFieldSelected }">
</select>
我已经调试过了,可以看到带有值/标签属性的myFieldArray。 但下拉选项不会显示在UI上

我在做ko.computed时是否丢失了一些上下文?

如果您阅读了他们的

计算的可观测值是依赖于一个或多个其他可观测值的函数,当这些依赖项中的任何一个发生变化时,这些函数将自动更新

您最好使用
observearray
而不是
computed
observeable。我想你的代码应该是这样的

var ViewModel = function() {
   var self = this;
   self.selectedOpt = ko.observable("");
   self.options = ko.observableArray([]);

   self.initOptions = function () {
      // you code to grab data from server
      var myFieldData = data.apiResponseData,
          myFieldArray = [],
          someOtherField = self.someOtherFieldSelected();

      self.options.push({ value: "any", label: "Any" });
   };
};
var vm = new ViewModel();

$(document).ready(function() {
  vm.initOptions();
  ko.applyBindings(vm);
});
HTML

<select id="selectmyField" data-bind="options: options, value: selectedOpt">
</select>


什么是
库组件
绑定?看起来这可能是某个地方的一个问题?它主要是一个与UI相关的组件…但我确信这没有问题…好的。你的
computed
从表面上看很好,与上下文没有任何问题……在你看来?不是从你展示的内容来看-我以类似的方式使用了很多
computed
s,返回普通数组和
observearray
s-通常绑定fine我想基于两件事进行更新;A.API成功酒店。其他领域的变化(其他可观察)不确定使用observableArray是否有效?如果是的话,你能详细说明考虑到以上两个因素,我如何才能使observableArray工作吗thing@testndtv您必须订阅另一个可观察的,并编写一个函数来更新您的可观察数组。你最好还是坚持使用计算的,因为你无论如何都需要这个函数,而且它内置了一个隐式订阅可观察的。是的……这就是我的想法……但不确定为什么计算返回的结果(数组)没有绑定/显示到UI?
<select id="selectmyField" data-bind="options: options, value: selectedOpt">
</select>