我使用Backbone.Mutators.js js插件来覆盖setter和getter。以下是我的模型
var BuyerModel = Backbone.Model.extend({
mutators: {
fullName: {
get: function () {
return this.firstName + ' ' + this.lastName;
}
}
}
});
以下是我设置和获取全名的方法。
var buyerModel = new BuyerModel();
buyerModel.set({ firstName: 'Joe', lastName: 'Bloggs' });
console.log(buyerModel.get('fullName')); // returns undefined undefined
console.log(buyerModel.get('firstName')); // return Joe
console.log(buyerModel.get('lastName')); // returns Bloggs
为什么fullName会返回undefined undefined以及如何修复它?
答案 0 :(得分:1)
我不知道mutators插件,但看起来你需要将你的功能更改为
return this.get('firstName') + ' ' + this.get('lastName');
这意味着函数的范围是模型而不是属性子对象。
答案 1 :(得分:1)
模型的属性存储在它的attributes
属性中,那些不是实例的直接属性,您应该使用get
方法:
return this.get('firstName') + ' ' + this.get('lastName');