Javascript Ember.js如何截取和过滤传递给Ember.Object.create的参数(params)

Javascript Ember.js如何截取和过滤传递给Ember.Object.create的参数(params),javascript,ember.js,Javascript,Ember.js,这段代码将输出未定义的,但我想以某种方式截取属性设置,如果设置为未定义的,则保持默认值“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')); 使用计算属性和默认值

这段代码将输出未定义的,但我想以某种方式截取属性设置,如果设置为未定义的,则保持默认值“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')); 

使用计算属性和默认值

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')); 
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'));