use*_*947 13 javascript backbone.js backbone.js-collections
我正在学习Backbone.
我想创建一个包含不同模型的列表,具有不同的属性.
例如,按任何顺序列出文件夹内容,其中可包括类型文件的模型和类型文件夹的模型.
file : {
title : "",
date : "",
type : "",
yaddayadda : ""
}
folder : {
title : "",
date : "",
haminahamina : ""
}
Run Code Online (Sandbox Code Playgroud)
在Backbone中表示这个的正确方法是什么?是否可以使用多个模型的单个集合?
Luk*_*kas 26
创建其他模型继承自的基本模型:
var DataModel = Backbone.Model.extend({
// Whatever you want in here
});
var FileModel = DataModel.extend({
// Whatever you want in here
});
var FolderModel = DataModel.extend({
// Whatever you want in here
});
Run Code Online (Sandbox Code Playgroud)
并使model集合的类型与基本模型相同:
var DataCollection = Backbone.Collection.extend({
model: DataModel
});
Run Code Online (Sandbox Code Playgroud)
小智 17
你也可以做骨干方式.查看docs backbone集合
基本上你会创建不同的模型,在这种情况下添加一个tie breaker属性,称为"type".
var file = Backbone.Model.extend({
defaults: {
// will need to include a tie breaker attribute in both models
type: 'file'
}
}),
folder = Backbone.Model.extend({
defaults: {
// tie breaker
type: 'folder'
}
});
var fs = Backbone.Collection.extend({
model: function(model, options) {
switch(model.type) {
case 'file':
return new file(model, options);
case 'folder':
return new folder(model, options);
}
}
});
// after that just add models to the collection as always
new fs([
{type: 'file',name: 'file.txt'},
{type: 'folder',name: 'Documents'}
]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10623 次 |
| 最近记录: |