我正在使用淘汰赛进行实时搜索。
我已尽力遵循示例,但收到以下错误:
未捕获的ReferenceError:无法处理绑定“text:function(){return title}”消息:标题未定义
我做错了什么?
var points = [
{title: 'San Francisco Zoo',longitude: 37.7331,lattitude: -122.5031},
{title: 'Lake Merced', longitude:37.7094,lattitude:-122.4958}
];
var viewModel = {
query: ko.observable('')
};
viewModel.points = ko.computed(function(){
var search = this.query().toLowerCase();
return ko.utils.arrayFilter(points, function(point){
return point.title.toLowerCase().indexOf(search)>=0;
});
}, viewModel);
ko.applyBindings(viewModel);
<input id="s-input" class="controls" data-bind="value: query, valueUpdate: 'keyup'" placeholder="Sites Search">
<ul data-bind=" template: {name:'point', foreach: points">
<li data-bind="text: title"></li>
</ul>
答案 0 :(得分:1)
您收到的错误是在title
行的上下文中不存在属性<li data-bind="text: title"></li>
。
此处的语法错误<ul data-bind=" template: {name:'point', foreach: points">
会阻止下一行的上下文成为point
对象,而是保留原始上下文,即视图模型本身。您的视图模型没有title
属性,因此出错。