如何更新计算属性?

时间:2016-07-26 23:52:10

标签: ember.js

我是emberjs的新手。 在模板中,我有 {{LabelText的}}

现在,我想要 默认情况下,labeltext应为'Hello' 如果条件A,则labeltext = Wow 如果条件B,那么labeltext =谢谢 有没有办法在emberjs中的组件中编写计算属性来执行上述要求?

1 个答案:

答案 0 :(得分:0)

在您的组件中,

labeltext:Ember.computed('conditionVar',function(){
 var val = this.get('conditionVar');
 if(Ember.isEqual(val,'conditionA')){
  return 'Wow';
 }
 else if(Ember.isEqual(val,'conditionB')) {
  return 'Thanks';
 }
 return 'Hello';
})

您可能拥有计算属性的getter和setter,

labeltext: Ember.computed('conditionVar', function () {
    get(key){
      var val = this.get('conditionVar');
      if (Ember.isEqual(val, 'conditionA')) {
        return 'Wow';
      }else if (Ember.isEqual(val, 'conditionB')) {
        return 'Thanks';
      }
        return 'Hello';
    },
    set(key, value){
      // you can set conditionVar so that it will return the same value when you request it again.
      if(value === 'Wow') {
        this.set('conditionVar', 'conditionA');
      }
      else if(value === 'Thanks') {
        this.set('conditionVar', 'conditionB');
      }
     return value;
    }
    }),

参考官方指南:https://guides.emberjs.com/v2.3.0/object-model/computed-properties/