我正在使用热毛巾模板,并且正在尝试使用 list.js 过滤列表中的结果。
我已经在我的包配置中包含了 list.min.js 文件,并且我也在 index.html 文件中正确地引用了它。
我有一个看起来像这样的视图(leads.html):
<div id="lead-article-list">
<input class="search" type="text" />
<ul class="list" data-bind="foreach: leads" >
<li>
<span data-bind="text: name" class="name"></span>
</li>
<li>
<span data-bind="text: description" class="description"></span>
</li>
</ul>
</div>
<script type="text/javascript">
var options = {
valueNames: ['name', 'description']
};
var featureList = new List('lead-article-list', options);
</script>
然后我有一个对应的 viewModel (leads.js),如下所示:
define(['services/datacontext', 'durandal/plugins/router'],
function (datacontext, router) {
var leads = ko.observableArray();
var activate = function () {
return datacontext.getLeadArticles(leads, false);
};
var vm = {
activate: activate,
leads: leads
};
return vm;
});
当我运行应用程序时,我的列表会正确填充,但是当我在搜索输入中输入任何内容时,不会发生过滤。我觉得我错过了 KnockoutJS 特有的一些东西,以及我正在使用 observables 的事实。
我也不确定我视图末尾的脚本是否真的应该在我的视图模型中?
任何帮助将不胜感激。谢谢!