App.Person = Ember.Object.extend({
firstName: "Trek",
});
App.person = App.Person.create({
firstName: undefined
})
console.log(App.person.get('firstName'));
此代码将输出undefined,但我想以某种方式拦截属性设置,如果它设置为undefined ,则保持默认值“ Trek ”不变。
ember-1.0.0
App.Person = Ember.Object.extend({
firstName: "Trek",
});
App.person = App.Person.create({
firstName: undefined
})
console.log(App.person.get('firstName'));
此代码将输出undefined,但我想以某种方式拦截属性设置,如果它设置为undefined ,则保持默认值“ Trek ”不变。
ember-1.0.0
使用计算属性和默认值
App.Person = Ember.Object.extend({
firstNameDefault:'Trek',
firstName:function(key,value){
if(arguments.length > 1 && typeof value !== 'undefined'){
return value
}
return this.get('firstNameDefault');
}.property('firstNameDefault')
});
App.person = App.Person.create({
firstName: undefined
})
console.log(App.person.get('firstName'));
您可以使用计算属性:
App.Person = Ember.Object.extend({
_firstName: 'Trek',
firstName: function(key, value) {
if (arguments.length > 1 && typeof value !== 'undefined') {
this.set('_firstName', value);
}
return this.get('_firstName');
}.property('_firstName')
});
App.person = App.Person.create({
firstName: undefined
})
console.log(App.person.get('firstName'));