我正在尝试确定是否可以在我正在处理的项目中使用 ModelBinder,但我需要能够在更新模型之前运行第 3 方验证例程。我尝试设置一个小提琴来测试文档末尾提到的配置选项,但我似乎无法让它工作。
在下面的小提琴中(大部分是从示例小提琴中偷来的),我试图设置事件“焦点”来触发更新,但它不起作用。谁能帮我理解为什么?
代码:
HTML:
<div id="testarea">
<br>
Model data: <div id="modelData"></div>
<hr><br>
<div id="viewContent"></div>
</div>
JS:
$().ready(function () {
Backbone.ModelBinder.SetOptions = ({
changeTriggers : {'': 'focus'}
});
model = new Backbone.Model();
model.set({firstName: 'Bob'});
model.bind('change', function () {
$('#modelData').html(JSON.stringify(model.toJSON()));
});
ViewClass = Backbone.View.extend({
_modelBinder: undefined,
initialize:function () {
this._modelBinder = new Backbone.ModelBinder();
//console.log( this._modelBinder);
},
close: function(){
this._modelBinder.unbind();
},
render:function () {
var html = '\
\
<div id="welcome"> Welcome, <span name="firstName"></span> <span name="lastName"> </span>\
<br><br>\
Edit your information:\
<input type="text" name="firstName"/>\
<input type="text" name="lastName"/></div>\
\
';
//console.log(this.$el);
this.$el.html(html);
this._modelBinder.bind(model, this.el);
return this;
}
});
view = new ViewClass();
$('#viewContent').append(view.render().$el);
});
假设那里有一个明显的编码器(我)错误,有谁知道是否可以为 ModelBinder 定义一个自定义事件/处理程序,这将允许我在将输入交给 ModelBinder 处理回模型之前验证输入?
非常感谢!
特拉夫