我是backscore.js + underscore.js的初学者。对不起,如果这里已经是一个答案。也许我只是没有正确的问题。
我有一个简单的模板:
<script type="text/template" id="item-template">
<div>
<input id="todo_complete" type="checkbox" <%= Completed ? 'checked="checked"' : '' %> />
<%= Title %>
</div>
</script>
下一个视图:
define(["backbone", "underscore", "jquery"],function (Backbone, _, $) {
var todoView = Backbone.View.extend({
tagName: 'li',
todoTpl: _.template($('#item-template').html()),
events: {
'change input': 'edit',
},
initialize: function() {
this.$el = $('#todo');
},
render: function() {
this.$el.append(this.todoTpl(this.model.toJSON()));
this.input = this.$('.edit');
return this;
},
edit: function(val) {
//console.log(this);
//console.log(_(this.el));
},
});
return todoView;
});
和模型:
define(["backbone", "underscore", "jquery"], function (Backbone, _, $) {
var Todo = Backbone.Model.extend({
defaults: {
Title: '',
Completed: false
}
});
return Todo;
});
在我运行渲染后一切正常,但是在我开始编辑表单中的数据(例如更改复选框的状态)后,视图中的模型没有改变。如何以正确的方式改变它。
我知道我可以在视图中的每个输入更改上添加事件,并手动更改整个模型的每个属性的值。在这种情况下,最佳做法是什么?
非常感谢任何提前!