properties - 我的 Ember Controller 的属性确实得到了回显

标签 properties controller ember.js literals

我使用 Ember.js 已经有一段时间了。现在我出现了一种无法修复的奇怪行为。我不是第一次遇到这种情况,但在以前的情况下,我做了一些小小的改变就想通了。但现在,我真的不知道到底是什么原因造成了冲突。该问题发生在 Controller 中。我有这个极其简单的 Controller ,仅用于测试:

App.AppColleaguesController = Ember.ArrayController.extend
(
  {
    needs: ['app'],

    aNumber: function()
    {
      return this.get('controllers.app.personId');
    }
  }
);

当然,该属性是在 AppController 上定义的:

App.AppController = Ember.ArrayController.extend
(
  {
    loggedIn: false,
    personId: -1,
    personName: '',
    location: '',

    logOut: function()
    {
      if (window.confirm("Do you want log out?"))
      {
        this.set('loggedIn', false);
        this.set('personId', -1);
        this.set('personName', '');
        this.set('location', '');
        this.send('goToLogin');
      }
    }
  }
);

在我的模板中,我得到以下结果:

... This is a number: function () { return this.get('controllers.app.personId'); } ...

我的模板就像这样简单:

...
This is a number: *{{aNumber}}*

{{debug}}
{{log aNumber}}
...

我的模板中的调试语句在 Firebug 控制台中向我显示了这一点:

...
Transitioned into 'app.colleagues'
function()
...

所以,这个函数就像是字面上的回显,而不是“解释”。事实上,我在更多 Controller 中遇到了此类问题,但其余 Controller (数量很多,例如 8 或 10 个 Controller )运行良好。您对这个问题有什么想法吗?是我的错误,还是 Ember 的问题?

提前非常感谢!我希望你能帮助我。

最佳答案

您忘记了函数后面的.property。 Ember 需要它来表明函数是计算属性。

aNumber: function() {
  return this.get('controllers.app.personId');
}.property('app.personId')

关于properties - 我的 Ember Controller 的属性确实得到了回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17577702/

相关文章:

properties - 当我尝试从类外部访问字段时,为什么我的 getter 没有被调用?

java - 当属性在属性文件中重复时引发异常

java - 在表中显示从数据库中检索到的值

ember.js - Emberjs - 无法使用appendTo和{{render}}助手渲染嵌套 View

node.js - 使用 Bower Ember CLI 导入依赖项 - 找不到模块

ember.js - 如何简单地将 bootstrap 2 模式对话框包装在 ember 组件中?

java - Gradle:作为文件读取有效,但不能作为资源读取

java - Gradle - 无法显示 : org. gradle.java.home

ruby-on-rails - 我该怎么做才能让一组用户显示一组照片

java - 带有附加参数的 Spring 前进?