Javascript 主干模型字段
我正在尝试向我的主干模型添加一个新的虚拟字段,每当添加一个新项时,代码很简单:Javascript 主干模型字段,javascript,backbone.js,Javascript,Backbone.js,我正在尝试向我的主干模型添加一个新的虚拟字段,每当添加一个新项时,代码很简单: window.DealModel = Backbone.Model.extend({ defaults: { title: '', desc: '', location: '', terms: '', price_orignial: 0, price_discounted: 0 } }); window.
window.DealModel = Backbone.Model.extend({
defaults: {
title: '',
desc: '',
location: '',
terms: '',
price_orignial: 0,
price_discounted: 0
}
});
window.DealCollection = Backbone.Collection.extend({
model: DealModel,
initialize: function (models, options) {
this.bind('add', this.addTitleShort);
},
addTitleShort: function(rdeal){
rdeal.set('title_short', _.str.prune( rdeal.get('title') , 140, '+++'));
}
});
但是,我一直收到一个\u无法使用'in'运算符在title\u short\u
中搜索'id',我不确定问题出在哪里,感谢您的帮助。我认为“set
”使用对象哈希:
rdeal.set( { title_short: _.str.prune( rdeal.get('title') , 140, '+++') });
但是,如果创建的模型中没有“title_short”属性,我不知道您是否可以“设置”它。你可以这么做
rdeal.title_short = _.str.prune( rdeal.get('title') , 140, '+++');
您还可以向模型类添加一个函数,该函数将返回结果,从而无需处理模型的“change
”事件:
并使用它:myModelInstance.title_short()代码>
希望有帮助
window.DealModel = Backbone.Model.extend({
...
title_short: function() {
return _.str.prune( this.get('title') , 140, '+++');
}
});