Backbone 将模型属性绑定到输入

Backbone bind model attribute to input

在Backbone中是否有将模型属性绑定到输入字段以便当输入值更改时模型属性将自动设置为当前值?

目前我的观点如下

<input type="text" name="firstname" class="form-input" value="<%- model.firstname %>" />

然后在视图中我监听以下事件并相应地设置模型属性

events: {
    "keydown .form-input": "setAttribute"
},

setAttribute: function() {
    //Use model.set on the attribute that was changed
}

对我来说,这似乎是一种糟糕的做法。我是否缺少更简单的方法?

这是使用 vanilla Backbone 的正确方法。如果你想设置自动数据绑定,你需要一个像 Epoxy.

这样的插件

使用 Epoxy,您的示例将类似于:

var BindingView = Backbone.Epoxy.View.extend({
  bindings: {
    "[name=firstname]": "value:firstName",
  }
});

这会将模型的 firstName 属性绑定到具有 name="firstname" 的输入。