1
我有2個意見('索引'和'項目')。
'索引'有一個按鈕,只是去'項目'。
'item'有一個控制器,它調用一個廣播事件的服務,並且控制器不停地監聽這個事件來爲一個對象填充一個值。
問題:在第一次點擊按鈕,我去'項目',我得到正確的對象值。但是,如果我點擊後退按鈕(返回'索引')並再次點擊相同的按鈕,我去'項目',但對象是空的。
爲MyService
update: function() {
$rootScope.$broadcast('event:item-updated');
console.log("broadcast item updated");
return;
}
ItemCtrl
.controller('ItemCtrl', function($scope, $state, MyService) {
console.log("Item controller");
MyService.update();
$scope.item = {};
$scope.$on('event:item-updated', function(e, status) {
$scope.item = {"name": "My Item"};
console.log("on item updated");
});
}
指數HTML
<ion-view view-title="Index">
<ion-content>
<div>
<button class="button" ui-sref='app.item'>
Item
</button>
</div>
</ion-content>
</ion-view>
項目HTML
<ion-view view-title="Item">
<ion-content>
<div>
{{item.name}}
</div>
</ion-content>
</ion-view>
使用一些的console.log(),我可以檢查:
首播時間:
- 項目控制器
- 廣播產品的更新
- 上項目更新
二時間:
- 項目控制器
- 廣播產品的更新
所以,出於某種原因,當我去到「項」其他時間監聽器不工作。
您能否爲您的問題提供重拳或小提琴? – varit05
使用服務來存儲物品 – charlietfl
有些人回答了我的問題,這對我很有幫助。我應該在調用MyService.update()之前聲明$ listener。我仍然不知道它爲什麼在第一次運作,並且在其他時間不運作。 –