我一直在使用Ember.js。現在我收到了一個我無法修復的奇怪行爲。這不是我第一次體驗它,但是在以前的場合,我在做出一些小小的改變之後才發現它。但是現在,我真的不知道是什麼導致了衝突。這個問題發生在控制器中。我有這個可笑的簡單控制,只是爲了測試:我的Ember的控制器屬性正在被直接回顯
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問題?
非常感謝!我希望你能幫助我。
做你的其他控制器也返回像一個負值'-1' – intuitivepixel
對不起@intuitivepixel但我不明白你的問題......如果你指的'personId'正確的價值是,它在我的其他控制器中以正確的方式返回。對不起,我的誤解 –