我可以访问FooView。
我想创建FooView.model实例。
我尝试了fooModel = new FooView.model()
,但它不起作用。
答案 0 :(得分:1)
骨干中的视图没有模型!
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});
希望这有帮助!