我正在点击创建一个模型,并想知道哪个是在模型上监听验证事件的最佳位置?我创建了模型,在属性上设置输入值然后创建一个监听器,它在单击处理程序中感觉没有这个监听器但是我可能错了吗?
JS
buttonClicked: function(event) {
var input = this.$('.js-input'),
itemValue = input.val(),
model = new Item({
item: itemValue
}, {
validate: true
});
this.listenTo(model, 'invalid', this.onFormError, this);
}
指向codepen http://codepen.io/styler/pen/rearYp
的链接答案 0 :(得分:1)
这取决于您对模型的处理方式。如果要在新视图中显示它,则验证应该在新视图的初始化中。
var view= Backbone.View.extend({
model:Item,
initialize: function (model, options) {
this.listenTo(this.model, 'invalid', this.onFormError, this);
},
......
}
如果您在本地使用它,可以在点击处理程序上使用它。
试试这个...............
var view= Backbone.View.extend({
model:Item,
initialize: function (model, options) {
this.model= new Item();
this.listenTo(this.model, 'invalid', this.onFormError, this);
this.render();
},
buttonClicked: function(event) {
var input = this.$('.js-input'),
itemValue = input.val(),
this.model.set('item', itemValue);
if(!this.model.isValid(true)){
return;
}
}
......
}