我想弄清楚如何製作與backbone.js集合的集合。我對骨幹很陌生。我有類似如下的情況:Backbone.js收藏集
+---------------+ +------------------+
| Playlists | | Playlist |
|---------------| 0..* |------------------|
| +-------------->| Name |
| | | |
| | | |
+---------------+ +-------+----------+
|
|
|0..*
v
+------------------+
| Track |
|------------------|
| Name |
| Artist |
| |
+------------------+
在代碼中,這看起來與此類似:
var trackModel = Backbone.Model.extend({
//trackdata
});
var playlistModel = Backbone.Collection.extend({
model : trackModel,
url : "playlist"
});
var playlistsModel = Backbone.Collection.extend({
url : "playlists",
model : playlistModel //This pretty sure doesn't work like I want, because there is no model attribute for collections :S
});
但是我總是在JS控制檯收到一條錯誤消息:
Uncaught TypeError: Object [object Object] has no method '_validate'
時我嘗試執行觸發驗證的函數(如add,fetch,...)
它m如果我將validate
或_validate
函數添加到任何集合或模型,則不會產生任何差異。
我相信這是因爲backbone.js不支持集合中的集合。有另一種方法可行嗎?
UPDATE:
這是它的外觀,現在
var Track = Backbone.Model.extend({
//trackdata
});
var Tracks = Backbone.Collection.extend({
model:Track;
});
var Playlist = Backbone.Model.extend({
//name : ...
tracks: new Tracks()
});
var Playlists = Backbone.Collection.extend({
url : "playlists",
model : Playlist
});
貌似骨幹文檔現在包括嵌套模式與類別,非常相似,這裏的示例部分:http://backbonejs.org/#FAQ-nested –
首先 - 很高興你解決你的問題。希望這會成爲其他人的答案,但是你的問題是由於錯誤定義數據模型而產生的 - 沒有「播放列表」(你只有很多播放列表對象,它們被分組到一個地方),你的數據只包含「播放列表」和「跟蹤「,並且存在關係1播放列表可以有很多曲目。在你簡單的(已解決的)例子中,這個模式非常明顯。 – Dainius