knockout utils函数 - jsfiddle

时间:2016-10-24 22:09:09

标签: knockout.js

https://jsfiddle.net/3y3ucxpr/

我正在尝试过滤新车。

newHondaCars : ko.pureComputed(function(){
             return ko.utils.arrayFilter(hondaCars, function (car) {
           return car.year > 2010; 
  });
 })

上述小提琴有什么问题?我无法填充选择列表。

2 个答案:

答案 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/

我希望这很有帮助。

其他有用的链接: