3

我已经成功创建并绑定了计算属性,但是如何在代码的其他部分手动获取它们?

App.Test = Ember.Object.extend(
   value: "1"
   unit: "INCH"

   display: (->
     value = this.get('value')
     unit = this.get('unit')
     return "#{value} #{unit}"
   ).property('value', 'unit')
)

我如何在控制器中调用“显示”方法?以下显示了我认为可行的方法...

myTest = App.Test.create()
displayValue1 = myTest.get('display')
displayValue2 = myTest.display()

displayValue1 只返回一个对象,而不是一个字符串。displayValue2 抛出“未找到函数”错误。那么除了绑定之外,我如何访问此属性?

4

1 回答 1

4

将计算属性视为属性,而不是方法。即使它们包含一点逻辑,它们确实是属性,所以你不应该将它们作为方法调用。

您可以使用经典Ember.get方法访问它们,如下所示:

MyApp.myObject = Ember.Object.create({
    name: "foo",
    surname: "bar",
    aComputedProperty: function() {
        return this.get('name') + ' ' + this.get('surname');
    }.property('name', 'surname')
});

MyApp.myObject.get('aComputedProperty'); // => 'foo bar'

您可以在此 JSFiddle中尝试此代码。

于 2012-10-30T14:46:21.000 回答