我始終認爲.observes('someProperty')
和.property('someProperty')
的工作原理完全相同,只是前者用於觸發函數調用,後者用於保持對象屬性爲最新。計算vs觀察Ember中的控制器
但現在我遇到了問題。我的控制器代碼如下所示:
_logChange: function(){
console.log('model array observer fired');
}.observes('[email protected]'),
statsData: function(){
console.log('statsData being updated');
...
return someArray;
}.property('[email protected]')
觀察員和計算性能都手錶的型號@每個但出於某種原因,在每一個模型變化觀測火災和財產只更新兩次,然後神祕地會耗盡。statsData
在初始頁面加載時計算一次,並且在第一次路徑轉換時計算一次,然後在這之後,沒有任何轉換(其基礎model
中的更改)會影響轉換。
這是怎麼回事?他們不應該以同樣的方式迴應變化嗎?
請注意,我的上午使用我的模板中的statsData
屬性。
我想補充一點,我沒有在'values'的計算屬性中定義的setter邏輯,這就是爲什麼計算的屬性被打破;它被香草JS陣列完全覆蓋。記得,在計算屬性中設置邏輯! – IGNIS 2015-02-19 16:14:41