Как я могу очистить это текстовое поле?
Следующий мифриловый код предназначен для очистки текстового поля после извлечения значения из него. Он не очищает текстовое поле (или вообще ничего не делает). Как я могу заставить это работать?
Обратите внимание, что если я изменю эту строку:
this.newItemName("");
чтобы:
this.newItemName("abc");
затем текстовое поле обновляется новым значением. Но я хочу очистить это.
var app = {
controller: function() {
this.newItemName = m.prop("");
this.makeNewItem = function(name) {
if (name) {
this.newItemName("");
}
}
},
view: function(ctrl) {
return m("div", [ m("span", "new item"),
m("input",
{ type: "text",
onchange: m.withAttr("value", ctrl.makeNewItem.bind(ctrl)),
value: ctrl.newItemName() })]);
}
};
m.module(document.body, app);
1 ответ
Решение
Ваш код работает: http://jsfiddle.net/h89k7/1
Возможно, вы используете старую версию Mithril.
Код, приведенный ниже, для подтверждения SO:
var app = {
controller: function () {
this.newItemName = m.prop("");
this.makeNewItem = function (name) {
if (name) {
this.newItemName("");
}
};
},
view: function (ctrl) {
return m("div", [m("span", "new item"),
m("input", {
type: "text",
onchange: m.withAttr("value", ctrl.makeNewItem.bind(ctrl)),
value: ctrl.newItemName()
})]);
}
};
m.module(document.body, app);