2016-07-02 55 views
0

我发现本教程适用于通过数组筛选并创建数组的新过滤版本的挖空实用程序。 http://www.knockmeout.net/2011/04/utility-functions-in-knockoutjs.htmlKnockout实用函数 - ko.utils.arrayFilter - 数据绑定

从那里,我明白this.filter()。toLowerCase();“是绑定到视图中输入框的ko.observable。

我试图将其整合到我的代码中。 我知道我需要更多的变化。不再支持“ko.utils.stringStartsWith”方法

我收到错误“Uncaught TypeError:this.kofilter不是函数” 我不确定这是什么意思,是不是有什么问题数据绑定?

这是我的JS代码

this.filteredItems = ko.computed(函数(){

console.log(this) 

var filter = this.kofilter().toLowerCase(); 

    if (!filter) { 
    return self.venueList(); 
     } else { 
        return ko.utils.arrayFilter(this.venueList(), function(venues) { 
      return ko.utils.stringStartsWith(venues.name().toLowerCase(), filter) ; 
     }); 
    } 
}, this.venueList); 



}; 

这是HTML

 <br><input placeholder = "Search..." data-bind="value: kofilter, valueUpdate: 'afterkeydown'"> 
+0

发布您创建'kofilter'的行。并正确缩进你的代码,这是不可能读取的。 –

+0

我发现这个问题,我失踪了self.kofilter = ko.observable(''); –

回答

0

我发现这个问题,我失踪了self.kofilter = ko.observable('');

0

我敢打赌这又是一个问题this。例如我不认为你想要通过this.venueList计算作为上下文对象,而只是this

如果您有一个self变量,请坚持,并且不要使用this。否则,请确保您将正确的this参数传递给所有函数调用。

相关问题