Backbone:mixins与冲突的方法

时间:2012-12-27 22:19:50

标签: javascript backbone.js underscore.js

我开始使用此帖子中的mixins:Proper way of doing view mixins in Backbone

var MyMixin = {
  foo: "bar",
  sayFoo: function(){alert(this.foo);}
}

var MyView = Backbone.View.extend({
 // ...
});

_.extend(MyView.prototype, MyMixin);

myView = new MyView();
myView.sayFoo(); //=> "bar"

除非在混合中使用冲突的方法,否则其工作正常:混合中的示例render()和实际视图中的render()

如何首先触发mixin方法然后再实际查看方法?

2 个答案:

答案 0 :(得分:2)

我可能会建议使用Backbone.Cocktail,它提供了一种非常简洁的方法来指定mixins(尊重继承):

var Mixin = {
  initialize: function() {
    console.log("I'll be called as well as the class's constructor!");
  }
};

var View = Backbone.View.extend({
  mixins: [ MyMixin ]
});

我已在此blog post详细说明。

答案 1 :(得分:0)

为什么不简单地使用该问题上提供的其他答案:Backbone-Mixin Gist