我有一长串物品,我想在<ul>
中展示。我想添加一个“过滤器”输入,因此用户可以将项目列表缩小到与过滤器匹配的项目。如何使用Mithril.js创建依赖关系?
我的控制器包含一个filter
道具和list
阵列:
function Ctrl() {
this.filter = m.prop('');
this.list = [];
}
我已经添加了一个update
方法给控制器,它看起来在filter
道具和更新list
数组的内容:
Ctrl.prototype.update = function (value) {
var _this = this;
if (this.filter()) {
searchItems(this.filter(), function (items) {
_this.list = items;
});
} else {
this.list = [];
}
};
最后,我的视图遍历list
数组并呈现项目。此外,它会显示在上面输入,绑定到filter
道具:
var view = function (ctrl) {
return m('#content', [
m('input', {
oninput: m.withAttr("value", ctrl.filter),
value: ctrl.filter()
}),
m('ul', [
ctrl.list.map(function (item, idx) {
return m('li', m('span', item.getName()));
})
])
]);
};
我的问题是,如何使update
功能火灾时的filter
值改变,使我得到物品的更新列表?
我需要定位两个oninput
事件吗?一个更新filter
和一个发射update
?
我应该使用单个oninput
事件并更新update
函数中的filter
属性吗?
还有其他吗?
你应该承担的DOC给出的例子看看:http://lhorie.github.io/mithril-blog/organizing-components.html 它说明了什么你正在做:过滤一个列表。 – fluminis