Ste*_*fan 5 javascript backbone.js
我有一个包含集合的Backbone模型:
var Stream = Backbone.Model.extend({
defaults: {
dummyField: "1",
excludedUsers: new Backbone.Collection()
}
});
var s = new Stream;
s.get('excludedUsers').add( {name:'Stefan'} );
console.log(s.toJSON())
Run Code Online (Sandbox Code Playgroud)
收益率:
{ dummyField: '1',
excludedUsers:
{ length: 1,
models: [ [Object] ],
_byId: {},
_byCid: { c1: [Object] } } }
Run Code Online (Sandbox Code Playgroud)
而不是"预期":
{
dummyField: '1',
excludedUsers: [ {name:'Stefan'} ]
}
Run Code Online (Sandbox Code Playgroud)
因为Backbone没有深入JSONing模型.解决方法的唯一方法是在Stream的原型上覆盖toJSON方法,但这对其他情况没有帮助.是否有一般/更好的解决方案(除了沉重的Backbone.Relational插件)?
您可能想Backbone.Collection.toJSON()直接覆盖该函数或创建一个新集合,将所有其他集合扩展到其中:
var MyDefaultCollection = Backbone.Collection.extend({
toJSON: function() {
//Your code here
}
});
var Stream = Backbone.Model.extend({
defaults: {
dummyField: "1",
excludedUsers: new MyDefaultCollection()
}
});
//You could also extend it
var NewCollection = MyDefaultCollection.extend({
//custom code here
});
Run Code Online (Sandbox Code Playgroud)
这只是理论,我从未编写过代码,所以欢迎对我的想法提供任何反馈:)
| 归档时间: |
|
| 查看次数: |
1180 次 |
| 最近记录: |