Backbone.js 创建视图';我只知道主干中的视图时的s模型?

Backbone.js 创建视图';我只知道主干中的视图时的s模型?,backbone.js,view,model,Backbone.js,View,Model,我有权访问FooView 我想创建FooView.model实例 我尝试了fooModel=newfooview.model(),但它不起作用。主干中的视图没有模型 FooView可能是一个基于名称的视图类(Javascript中的一个常见约定是以大写字母开始类,以小写字母开始变量)。。。所以我假设在某个地方,你有一个: var myView = new FooView(); 对吗 如果这样做,您将看到myView.model未定义。您可以在创建时看到它: var myView = new

我有权访问FooView

我想创建FooView.model实例


我尝试了
fooModel=newfooview.model()
,但它不起作用。

主干中的视图没有模型

FooView可能是一个基于名称的视图类(Javascript中的一个常见约定是以大写字母开始类,以小写字母开始变量)。。。所以我假设在某个地方,你有一个:

 var myView = new FooView();
对吗

如果这样做,您将看到myView.model未定义。您可以在创建时看到它:

var myView = new FooView({model: myModel});
然后,myView.model应该等于myModel

实际上,视图的模型属性只是对现有模型的反向引用,视图不会自动创建新模型实例或其他任何东西。实际上,您可以拥有没有模型的视图,或者将模型的反向引用存储在myView.coolName中。将存储视图工作所需信息的模型放在“模型”中只是一种惯例

因此,总而言之,您可能应该做的是以下几点:

 //FooModel is another class extending from Backbone.Model
 var myModel = new FooModel({fooStuff: "value", otherFooStuff: "something else"...});
 var myView = new FooView({model: myModel});

希望这有帮助

谢谢你的意见。我想在视图中存储模型的类。并在运行时使用它。var myModel=newfooview.Model({foostuff:“valus”});类似这样的内容..为什么要在视图类中存储模型类?那将是非常不寻常的。。。也就是说,你可以在课堂上存储任何东西。所以如果您这样做:FooView.Model=Backbone.Model.extend({…}),那么在FooView类中,您将找到一个属性.Model,您可以使用新的FooView.Model({foostuff:“valus”})来“新建”。但再一次,这对于除您之外的任何人来说都是非常混乱的,因为这是一个存储模型类的奇怪地方。