我有一長串物品,我想在<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