带回调的计算属性返回'undefined'

时间:2013-05-01 11:10:02

标签: ember.js

我正在尝试在运行时评估我的应用程序外部的某些状态,并使用它来确定/驱动计算属性的值。然而,似乎我的财产总是返回'undefined'。我是否犯了一些严重的定义错误,这应该是不可能的?

非常感谢任何帮助。一个清理过的代码片段进行计算:

curState: function() {
  if (this.authenticated) {
    return true;
  } else {
    external_getStatus( function(status) {
      if (status === 'allowed') {
        return true;
      } else {
        return false;
      }
    });
  }
}.property()

1 个答案:

答案 0 :(得分:0)

curStatethis.authenticated时,您未从false返回任何内容。 if声明

if (status === 'allowed') {
    return true;
} else {
    return false;
}

从给予external_getStatus()的回调中返回。您必须在return中添加curState语句才能获得非undefined返回值。

另外,另外,写return status === 'allowed'代替上述if语句更好。