Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干模型字段_Javascript_Backbone.js - Fatal编程技术网

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, '+++');
    }
});