【发布时间】:2014-03-07 23:49:50
【问题描述】:
我正在尝试在初始化函数中向 Backbone.View 添加一些处理功能,我希望将其转移到我的所有主干视图中。问题是,我正在使用 Marionette,所以我不能这样做:
var BaseView = Backbone.View.extend({})
因为 Marionette 扩展了 Backbone.View 本身。这是我想做的:
// Add processoring logic to an extended version of Backbone.
Backbone.View.extend({
initialize: function(options){
if(options.hasOwnProperty("vents") {
// process vents
}
// native code. Calling the library's actual original function to maintain original functionality.
Backbone.View.initialize(this, aurguments);
}
})
var CollectionView = new Marionette.CollectionView({
vents: {VentCallName: function(){}}
// When initialize is called, it'll see the vents and deal with them automatically.
});
我只是不确定如何将功能添加到 Backbone.View,同时保持其中已有的任何功能逻辑。
编辑
如何在不创建新的扩展实例并将我的所有观点都基于此的情况下,将初始扩展功能实际导入 Backbone.View.initialize?我不能让 Marionette 使用那个扩展视图,所以额外的处理必须进入 Backbone.View 的初始化函数。
如果我这样做,它会自行循环:
Backbone.View.prototype.initialize = function(){
console.log("moooo");
// custom logic then run Backbone.View.initialize native code.
Backbone.View.prototype.initialize.apply(this, arguments);
}
【问题讨论】:
标签: javascript backbone.js marionette