https://jsfiddle.net/3y3ucxpr/
我正在尝试过滤新车。
newHondaCars : ko.pureComputed(function(){
return ko.utils.arrayFilter(hondaCars, function (car) {
return car.year > 2010;
});
})
上述小提琴有什么问题?我无法填充选择列表。
答案 0 :(得分:0)
首先,每当您编写console
代码时,都不会忘记检查浏览器的Javascript
日志。
hondaCars
对象是您绑定的vm
对象的一部分,因此pureComputed
函数对hondaCars
一无所知。您必须通过{{1}来自hondaCars
对象。
vm
。
注意:强>
我强烈建议您以一种可以跟踪return ko.utils.arrayFilter(vm.hondaCars, function (car)
参考的方式实现您的模型。如果您需要拥有多个子模型,那么您将不会遇到任何问题加上它会更容易在代码变大时进行调试。
https://jsfiddle.net/3y3ucxpr/3/
<强> JS:强>
this
答案 1 :(得分:0)
如果你想保留你已有的格式,你可以删除newHondaCars函数并在ko.applyBindings(vm)之前添加一个函数:
vm.AddItems = ko.computed(function(){
return ko.utils.arrayFilter(vm.hondaCars(), function (item) {return (item.year > 2010); })
});
然后在html上你应该使用它:
options: $root.AddItems,
而不是:
options: newHondaCars(),
JSFiddle:https://jsfiddle.net/3y3ucxpr/4/
我希望这很有帮助。
其他有用的链接: