我一直在使用 Ember.js。现在我遇到了一个我无法修复的奇怪行为。我不是第一次体验它,但在以前的场合我做了一些小改动后就明白了。但是现在,我真的不知道是什么导致了冲突。该问题发生在控制器中。我有这个非常简单的控制器,仅用于测试:
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');
}
}
}
);
在我的模板中,我得到了这个结果:
...这是一个数字:function () { return this.get('controllers.app.personId'); } ...
我的模板就像这样简单:
...
This is a number: *{{aNumber}}*
{{debug}}
{{log aNumber}}
...
我的模板中的调试语句在 Firebug 控制台中向我展示了这一点:
...
Transitioned into 'app.colleagues'
function()
...
所以,就像函数是字面上的呼应,而不是“解释”。事实上,我在更多控制器中遇到了此类问题,但其余控制器(它们很多,比如 8 个或 10 个控制器)运行良好。你对这个问题有任何想法吗?是我的错误,还是 Ember 问题?
提前非常感谢!我希望你能帮助我。