【发布时间】:2013-12-09 10:28:14
【问题描述】:
我可以访问 FooView。
我想创建 FooView.model 实例。
我尝试了fooModel = new FooView.model(),但它不起作用。
【问题讨论】:
标签: backbone.js view model
我可以访问 FooView。
我想创建 FooView.model 实例。
我尝试了fooModel = new FooView.model(),但它不起作用。
【问题讨论】:
标签: backbone.js view 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});
希望这会有所帮助!
【讨论】: