2014-09-27 70 views
0

能否在單箇中央視圖中使用通過require.js/AMD定義的不同定義的模型?我的意思是單獨定義的模型,而不是一個集合。在視圖中使用任意/不同的骨幹模型

如果是的話,他們是如何在define()的回調函數的json部分中引用的,該函數定義中心視圖,其變量中的屬性函數等。只能有一個this.model,對吧?

是否可以渲染不同模板,可能由這些不同模型中的變量填充,有條件地從這個單一中央視圖中?

爲了延長我的問題:

可以使用通過require.js/AMD定義的不同定義的集合在一個單一的中央看法?

是否可以在單個集合中使用通過require.js/AMD定義的不同定義的模型? (僅此一項僅通過引用此能力集合就能實現第一個目標。)

+0

是的,這是可能的。請提供一個例子。 – 2014-09-29 16:52:39

+0

這是一個問題中的很多問題:-) – machineghost 2014-10-07 04:19:34

回答

0

是否可以在單箇中央視圖中使用通過require.js/AMD定義的不同定義的模型?我的意思是單獨定義的模型,而不是 集合中的一個。

如果是,它們是如何在定義的回調函數 的JSON部分(),它定義了中央視圖,在其VARS,在它的屬性等的 功能引用只能有一個this.model,對?

A Viewthis.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: function() { 
    if (this.model.get('bar')) { 
     this.$el.html(this.templateA(this.model.toJSON()); 
    } else { 
     this.$el.html(this.templateB(this.foo.toJSON()); 
    } 
} 

可以使用通過require.js/AMD 定義不同的定義集合在一個單一的中央看法?是的,就像你在多個模型中傳遞的一樣。如果您使用Require,則無關緊要;你可以通過它來傳遞Backbone對象/類。

是否可以使用通過require.js/AMD在 單個集合中定義的不同定義的模型? (僅憑這一點就可以實現第一個目標, 僅引用此功能集合。) 是的,只是把所有的模型中單個集合,像這樣:

var modelA = new ModelClass(); 
var modelB = new SomeOtherModelClass(); 
var collection = new Backbone.Collection([modelA, modelB]); 

唯一的限制是一個Collection只能有一個model屬性,這意味着只要您創建一個新的ModelCollection(例如通過fetchcreate),它們都將是該模型。

(這是可能得到解決,甚至,如果要更換的model使用自定義功能,但你不應該需要做的是,用)