Javascript Knockout.js:获取计算的可观测值以返回数组以与选择选项一起使用
基本上,我试图实现的是根据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
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);
});
});
});
}