是否可以在单一的中心视图中使用通过要求.js/AMD定义的不同定义模型?我指的是单独定义的模型,而不是集合中的模型。
如果是,它们是如何在定义中心视图的define()回调函数的json部分中引用的,在它的变量中,在它的属性函数中等等。只有一个this.model,对吗?
在这个单一的中心视图中,是否可以有条件地呈现不同的模板,这些模板可能由来自那些不同模型的变量填充?
延伸我的问题:
可以在一个单一的中心视图中使用不同定义的集合吗?这些集合是通过requi.js/AMD定义的。
是否可以在一个集合中使用不同定义的模型,这些模型是通过requi.js/AMD定义的?(仅此一项就可以通过仅引用此有能力的集合来实现第一个目标。)
发布于 2014-10-07 12:33:32
可以在一个单一的中心视图中使用不同定义的模型吗?我指的是单独定义的模型,而不是集合中的模型。
如果是,它们是如何在定义中心视图的define()的回调函数的json部分中引用的,在它的变量中,在它的属性函数中等等。只有一个this.model,对吗?
View的this.model只是为视图提供模型的一种方式。你也可以传递任何其他你想要的选项给视图,如下所示:
var YourView = Backbone.View.exend({
initialize: function(options) {
this.foo = options.foo;
}
});
var modelA = new Backbone.Model();
var modelB = new Backbone.Model();
var yourView = new YourView({model: modelA, foo: modelB});
// yourView.model == modelA
// yourView.foo == modelB是否可以在这个单一的中心视图中有条件地呈现不同的模板,这些模板可能由来自那些不同模型的变量填充?
是啊。例如,如果我们向YourView添加一个render方法,下面是一个示例
render: function() {
if (this.model.get('bar')) {
this.$el.html(this.templateA(this.model.toJSON());
} else {
this.$el.html(this.templateB(this.foo.toJSON());
}
}可以在一个单一的中心视图中使用不同定义的集合吗?是的,就像你在多个模型中传递一样。如果你使用了Require,这并不重要;你可以通过它传递主干对象/类。
是否可以在一个集合中使用不同定义的模型,这些模型是通过requi.js/AMD定义的?(仅此一项就可以通过仅引用此有能力的集合来实现第一个目标。)是的,只需将所有模型放入一个集合中,如下所示:
var modelA = new ModelClass();
var modelB = new SomeOtherModelClass();
var collection = new Backbone.Collection([modelA, modelB]);唯一的限制是一个Collection只能有一个model属性,这意味着无论何时通过Collection创建新的Model (例如,通过fetch或create),它们都将属于该模型。
(如果将model替换为自定义函数,甚至可以绕过这一点,但您不应该这样做。)
https://stackoverflow.com/questions/26070972
复制相似问题