Javascript Knockout.js:获取计算的可观测值以返回数组以与选择选项一起使用

Javascript Knockout.js:获取计算的可观测值以返回数组以与选择选项一起使用,javascript,jquery,knockout.js,observable,computed-observable,Javascript,Jquery,Knockout.js,Observable,Computed Observable,基本上,我试图实现的是根据Knockout.js中另一个下拉列表的值填充一个下拉列表 我的视图代码(明显删除): 在this.generall()中插入alert(),表明stayOptions中确实填充了我想要的值。问题在于如何让数组显示在Hotels列中相应行的selectoptions中 也许我犯了一个非常愚蠢的错误,但我已经看了很长时间的代码,现在什么都没有想到。请告知 编辑:我在视图模型的开头也在这样做: self.generall = ko.observabl

基本上,我试图实现的是根据Knockout.js中另一个下拉列表的值填充一个下拉列表

我的视图代码(明显删除):

this.generall()
中插入
alert()
,表明
stayOptions
中确实填充了我想要的值。问题在于如何让数组显示在Hotels列中相应行的selectoptions中

也许我犯了一个非常愚蠢的错误,但我已经看了很长时间的代码,现在什么都没有想到。请告知

编辑:我在视图模型的开头也在这样做:

            self.generall = ko.observableArray();

调用方法时,
this
变量在调用时被赋值

var f = $root.myPostProcessingLogic;
f(); // this will not set 'this' to '$root'
以上就是knockout所做的,这使得
this
被绑定到
myPostProcessingLogic()
中的其他内容。您已经定义了作用域
self
变量,因此这很容易修复

另一个问题是,重新分配观测值不会保留任何订阅者,任何从属观测值也不会更新

self.generall = ko.observableArray();
self.myPostProcessingLogic = function(elements) {
    self.generall.removeAll();
    $('.desti').each(function(i, obj) {
        $.getJSON("http://127.0.0.1:8000/api/hotel?format=json&location__name="+obj.value, function(data) {
            $.each(data.objects, function(i, item){
                self.generall.push(item.name);
            });
        });
    });
}

哇,谢谢你的快速回答。我是一个新手(以前用过),有时需要帮助才能找到解决问题的方法。希望有一天,我在编码和调试方面能和你们一样出色。再次感谢:)
var f = $root.myPostProcessingLogic;
f(); // this will not set 'this' to '$root'
self.generall = ko.observableArray();
self.myPostProcessingLogic = function(elements) {
    self.generall.removeAll();
    $('.desti').each(function(i, obj) {
        $.getJSON("http://127.0.0.1:8000/api/hotel?format=json&location__name="+obj.value, function(data) {
            $.each(data.objects, function(i, item){
                self.generall.push(item.name);
            });
        });
    });
}