我已经成功创建并绑定了计算属性,但是如何在代码的其他部分手动获取它们?
App.Test = Ember.Object.extend(
value: "1"
unit: "INCH"
display: (->
value = this.get('value')
unit = this.get('unit')
return "#{value} #{unit}"
).property('value', 'unit')
)
如何在控制器中调用'display'方法?以下显示了我认为可行的内容......
myTest = App.Test.create()
displayValue1 = myTest.get('display')
displayValue2 = myTest.display()
displayValue1只返回一个对象,而不是一个字符串。 displayValue2抛出'找不到函数'错误。那么除了绑定之外我该如何访问这个属性呢?
答案 0 :(得分: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'
您可以尝试使用此代码in this JSFiddle。