处理JavaScript中的依赖注入

时间:2014-11-13 16:33:01

标签: javascript design-patterns backbone.js

所以,当我想知道如何处理一个我认为在(至少)Backbone开发人员中非常常见的事情时,我会遇到这种情况。

考虑到我有这段代码:

var Book = Backbone.Model.extend();

var Books = Backbone.Collection.extend({
  model : Book
});

var BookView = Backbone.View.extend({ render: function(){ return this; } });

var BooksView = Backbone.View.extend({
  initialize: function(){
    this.collection.on('add', this.addItem, this );
  },

  addItem: function(){
    var book = new BookView(); //<<<<<<<<<<<<<<<<
    this.$el.append( book.render().$el );
  },
});

var book = new BookView({ collection: new Books() });

我如何处理new BookView部分?

我想的一种方法是使用工厂:

function BookViewFactory() {
  this.getBook = new BookView();
}

并在BookView instantiantion上传递一个这样的实例:

var book = new BookView({ collection: new Books(), bookView : new BookViewFactory() });

然后,在addItem方法上,我会调用this.bookView.getBook()

这是正确的做法吗?我还有其他一些方法吗?

谢谢!

请不要向我推荐任何依赖库(browserify,模块,AMD等),因为我正处于想要了解其工作原理的阶段。

0 个答案:

没有答案
相关问题