我在一个复杂的行为中创造了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 的能力..
有什么建议吗?
由于