Backbone.js 如何避免模型类过多

Backbone.js 如何避免模型类过多,backbone.js,Backbone.js,在我的应用程序中,模型的数量快速增长。我想知道您关于backbone.js的标准做法。假设您要创建一个需要2个其他模型的视图。是否创建一个新的模型类来包含以下两个模型: var m = new TheModel({ model1: new Model1, model2: new Model2 }); var view = new TheView({model:m}); 或者你只是做一些类似的事情: var m = { model1: new Model1, model2: ne

在我的应用程序中,模型的数量快速增长。我想知道您关于backbone.js的标准做法。假设您要创建一个需要2个其他模型的视图。是否创建一个新的模型类来包含以下两个模型:

var m = new TheModel({
  model1: new Model1,
  model2: new Model2
});
var view = new TheView({model:m});
或者你只是做一些类似的事情:

var m = {
  model1: new Model1,
  model2: new Model2
};
var view = new TheView({model:m});
第二个似乎更好,因为这样我就不需要额外的model类
model
。但是如果我混合使用这两种方法,那么在我看来,我必须记住我使用的是哪种风格,因为如果我想访问
model1
model2
,那么有两种不同的方法:

var m1 = this.model.get('model1');
或者在第二个方案中:

var m1 = this.model.model1;
你认为哪一个更好??如何组织所有模型和视图


谢谢

在这种情况下,您应该使用集合。在这里,您可以阅读有关集合的更多信息:

在这种情况下,您应该使用集合。在这里,您可以阅读有关集合的更多信息:

除非有理由链接您的模型,否则我不会创建聚合其他模型的新模型。第二个选项更好,因为您没有链接它们

我更愿意将它们进一步分开:

var view = new TheView({purchases: purchasesModel, user: userModel });
然后,在视图中,不是引用
this.model
,而是专门引用
this.purchases
this.user

你看,视图上的
model
属性实际上只是一种约定。视图中的
model
属性没有什么特别之处,只是
model
属性将在构造函数中自动复制。除此之外,在
Backbone.View
中没有对
模型的引用

当然,这意味着你需要用它做点什么:

var TheView = Backbone.View.extend({
    initialize: function(options) {
        this.purchases = options.purchases;
        this.user = options.user;
    }
});

这样,您就明确了所需的多个模型。我比verison#2更喜欢这个,因为您对视图的要求没有那么明确。

除非有理由链接您的模型,否则我不会创建一个聚合其他模型的新模型。第二个选项更好,因为您没有链接它们

我更愿意将它们进一步分开:

var view = new TheView({purchases: purchasesModel, user: userModel });
然后,在视图中,不是引用
this.model
,而是专门引用
this.purchases
this.user

你看,视图上的
model
属性实际上只是一种约定。视图中的
model
属性没有什么特别之处,只是
model
属性将在构造函数中自动复制。除此之外,在
Backbone.View
中没有对
模型的引用

当然,这意味着你需要用它做点什么:

var TheView = Backbone.View.extend({
    initialize: function(options) {
        this.purchases = options.purchases;
        this.user = options.user;
    }
});

这样,您就明确了所需的多个模型。与verison#2相比,我更喜欢这一点,因为您对视图的要求没有那么明确。

我只想补充一点,知道
model
只是一种惯例,没有什么特别之处,这确实很有帮助。:)很高兴能提供帮助。当有疑问时,我指的是(注释源)[.这真是一个让你了解正在发生的事情的好方法。哇,很好的链接!我不知道它的存在…帮助很多!我只是想补充一点,知道
模型
只是一个惯例,没有什么特别的地方,这真的很有帮助。:)很乐意帮助。如果有疑问,我会参考(注释源代码)[.这真是一个很好的方法让你了解正在发生的事情。哇,很好的链接!我不知道它的存在…帮助很大!