EmberJS:在模板中呈现get/set的计算属性

Eas*_*yCo 3 javascript ember.js

这是我的代码的简化版本,但它仍然说明了我遇到的问题.我正在尝试使用textValue绑定计算的属性值.

请注意,我知道我可以像这个小提琴那样做基本但这不符合我的需要.

在此代码的大版本中,未在此处说明,我value在进行设置和修改之前执行修改text.这就是为什么我不能只使用上面提到的默认绑定的要点.

JS

var App = Ember.Application.create();

App.ApplicationController = Ember.Controller.extend({
    text: "Default",
    textValue: function(key, value) {
        if(arguments.length === 1) {
            return this.get('text');
        } else {
            this.set('text', value);
        }
    }.property('text')
});
Run Code Online (Sandbox Code Playgroud)

HTML

<script type="text/x-handlebars" data-template-name="application">
    {{input value=textValue}}
    <br>   
    TextValue: {{textValue}}
</script>
Run Code Online (Sandbox Code Playgroud)

小提琴

提前致谢!

mem*_*tor 5

从Ember.js 1.12开始,不推荐检查参数长度,因为已经采用了计算属性的离散setter/getters.

textValue: Ember.computed('text',  {
    get() {
      return this.get('text');
    },
    set(value) {
      this.set('text', value);
    }
  })
Run Code Online (Sandbox Code Playgroud)

  • 嗨,我认为这个synthax存在问题.以下对我有用:textValue:Ember.computed('text',{get:function(){return this.get('text');},set:function(key,value,rawValue){this.set( 'text',value);}}) (2认同)