Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js-如何';获取';计算属性_Ember.js - Fatal编程技术网

Ember.js-如何';获取';计算属性

Ember.js-如何';获取';计算属性,ember.js,Ember.js,我已经成功地创建并绑定了计算属性,但是如何在代码的其他部分手动获取它们呢 App.Test = Ember.Object.extend( value: "1" unit: "INCH" display: (-> value = this.get('value') unit = this.get('unit') return "#{value} #{unit}" ).property('value', 'unit') ) 我如何在控制

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

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抛出“找不到函数”错误。那么,除了绑定之外,我如何访问此属性?

将计算属性视为属性,而不是方法。即使它们包含一点逻辑,它们实际上也是属性,因此永远不要将其作为方法调用

您可以使用经典的
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'

你可以试试这段代码。

所以,这是我认为应该可行的,所以我的代码中肯定还有其他奇怪的地方。当我绑定到属性时,我会得到一个字符串,但当我调用“get”时“我不。。。至少理论上我知道我做得对,谢谢。当你从
displayValue1
检查对象时,你看到了什么?这应该会返回字符串,在我看来是正确的。