结合多个木偶行为以形成复杂的行为

时间:2016-09-26 04:15:58

标签: backbone.js model marionette fetch behavior

我在一个复杂的行为中创造了3种行为。

我遇到的问题是Marionette Behaviors在一个方向上进行通信。如果我想使用行为哈希并添加一个引用复杂行为的函数的回调,则回调将没有引用该视图。

var ModelFetchable = Marionette.behavior.extend({
   onFetchNew: function (model) {
      var self = this;
      model.fetch({
         success: function (model, response) {
            self.options.successCallBack(model, response);

         }
      });
   }

var ComplexBehavior = Marionette.Behavior.extend({
behaviors: function () {
   return {
      ErrorDisplayable: {
         behaviorClass: ErrorDisplayable
      },
      ShelfAddRemovable: {
         behaviorClass: ShelfAddRemovable,
         template: this.options.template
      },
      ModelFetchable: {
         behaviorClass: ModelFetchable,
         successCallBack: this.displayResult,
      }
   };
},
onRenderModelSearch: function (row$) {
   this.view.triggerMethod('addShelf', row$);
   var model = new Model({
      entity: 'foo',
      row: row$,
      view: this.view
   });
   this.view.triggerMethod('fetchNew', model);
},
displayResult: function (model, response) {
   model.get('view').triggerMethod('removeShelf', model.get('row'));
}

当我触发 onRenderModelSearch 并将我的新模型返回到复杂行为 displayResult 时,它没有参考该视图,我无法理解将我的ShelfAddRemovable行为触发到 removeShelf ...

将此或this.view传递给模型时,我是否应该注意任何问题,以便我能够保留触发 removeShelf 的能力..

有什么建议吗?

由于

0 个答案:

没有答案