javascript - 如何清除该文本框?

标签 javascript mithril.js

以下 Mithril 代码旨在在从中提取值时清除文本框。它不会清除文本框(或根本不执行任何操作)。我怎样才能让它发挥作用?

请注意,如果我更改此行:

           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);

最佳答案

您的代码似乎有效: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);

关于javascript - 如何清除该文本框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24977052/

相关文章:

mithril.js - Mithriljs 不会在数据更改时更新 DOM

javascript - Mithril : prevent full application reload on submit

javascript - String.charCodeAt 未定义?

javascript - 如何查看基于 JavaScript 的 UWP 是否在 "background task"上下文中运行?

javascript createElement 和 setAttribute

javascript - 如何用 mithril 等价物替换 jquery?

javascript - 在 Mithril 中动态添加路由和组件

JavaScript 日期函数不起作用

javascript - 将 noUISlider 的最小/最大值保存到变量

javascript - 将可拖动事件委托(delegate)给父元素