Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自定义事件主干.modelbinder_Javascript_Backbone.js_Modelbinder - Fatal编程技术网

Javascript 自定义事件主干.modelbinder

Javascript 自定义事件主干.modelbinder,javascript,backbone.js,modelbinder,Javascript,Backbone.js,Modelbinder,我正在尝试确定是否可以在我正在进行的项目中使用ModelBinder,但我需要能够在更新模型之前运行第三方验证例程。我试着设置一个提琴来测试文档末尾提到的配置选项,但我似乎无法让它工作 在下面的fiddle中(大部分是从示例fiddle中偷来的),我试图设置事件“focus”来触发更新,但它不起作用。有人能帮我理解为什么吗 代码: HTML: <div id="testarea"> <br> Model data: <div id="modelData">&

我正在尝试确定是否可以在我正在进行的项目中使用ModelBinder,但我需要能够在更新模型之前运行第三方验证例程。我试着设置一个提琴来测试文档末尾提到的配置选项,但我似乎无法让它工作

在下面的fiddle中(大部分是从示例fiddle中偷来的),我试图设置事件“focus”来触发更新,但它不起作用。有人能帮我理解为什么吗

代码:

HTML:

<div id="testarea">
<br>
Model data: <div id="modelData"></div>

<hr><br>
<div id="viewContent"></div>
</div>


模型数据:

JS:

$().ready(函数(){
主干.ModelBinder.SetOptions=({
changeTriggers:{'':'focus'}
});  
model=新主干网。model();
set({firstName:'Bob'});
model.bind('change',function(){
$('#modelData').html(JSON.stringify(model.toJSON());
});
ViewClass=Backbone.View.extend({
_modelBinder:未定义,
初始化:函数(){
这是._modelBinder=new Backbone.modelBinder();
//console.log(此._modelBinder);
},
关闭:函数(){
这是。_modelBinder.unbind();
},
渲染:函数(){
var html='1〕\
\
欢迎,\


\ 编辑您的信息:\ \ \ \ '; //console.log(这个$el); 这个.$el.html(html); this._modelBinder.bind(model,this.el); 归还这个; } }); 视图=新的ViewClass(); $('#viewContent').append(view.render().$el); });
假设其中存在明显的编码器(me)错误,是否有人知道是否可以为ModelBinder定义自定义事件/处理程序,这将允许我在将输入交给ModelBinder处理回模型之前验证输入

非常感谢

列车

$().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);
});