Backbone.js:如何从View的范围外调用View的"方法"(例如:在模型的验证处理程序内)

Jan*_*ray 2 javascript backbone.js

基本上,我正在尝试做这样的事情:

Person = Backbone.Model.extend({

   validate: { ... },

   initialize: function(){ 
      this.bind('error', ?......?); <== what do I put?
   },

   // I DON'T WANT TO CALL THIS ONE
   handleError: function(){ }

});


ViewOne = Backbone.View.extend({

   //I WANT TO CALL THIS ONE:
   handleError: function(model, error){ 
         //display inside segmented view using jQuery 
   };

});
Run Code Online (Sandbox Code Playgroud)

我试过options.view.handleError但它不起作用......

我的主要目的:我想要一个特定的View创建模型来处理错误,而不是让模型全局处理它.例如,我希望View#1在我希望View#2显示在div中时发出警报.我不知道这是否是正确的做法.如果没有,我很乐意接受你的帮助.

谢谢.


更新:这是我的jsFiddle http://jsfiddle.net/jancarlo000/87mAk/

ope*_*rid 6

从Backbone 0.5.2开始,如果需要传递上下文,建议删除bindAll以支持第三个绑定参数.

ViewOne = Backbone.View.extend({
    initialize: function() {            
        this.model.on('error', this.handleError, this);
    },
    handleError: function(model, error) { /* ... */ }
});
...
var person = new Person();
var viewone = new ViewOne({model : person});
Run Code Online (Sandbox Code Playgroud)

这里的一般说明是,模型永远不应该知道他们的观点.只有视图应订阅模型事件.