我嘗試使用rootScope變量在我的離子項目中聲明全局列表。我的目標是用特定的消息更新這個列表。根據我的情況,我對他們的形式有不同的看法。我嘗試在應用程序的另一個視圖中執行完整的操作。當我按下「x」形式的按鈕時,「x形式已完成」消息應該被推入該全局列表中。之後,當我按下「y」形式的按鈕時,「y形式已完成」消息應該被追加到該列表中。然後,我在完成的操作視圖中顯示全局列表的內容。使用angularjs創建和更新全局列表
在每個視圖中,我有一個按鈕,如screenshot2所示。
另外,我連接與所述controller.js控制器那些視圖以下文件:
我創建使用rootScope爲其它控制器到達該列表中的全局列表值
.controller('MainCtrl', function($scope, $rootScope, $state) {
$rootScope.onButtonClick = function (obj) {
$rootScope.buttons = [];
$rootScope.buttons.push(obj);
$state.go('app.completed');
}
})
然後我連接與另一個控制器的「已完成操作」視圖顯示列表的最終視圖,以查看應用程序中所有按下的按鈕:
.controller('CompletedCtrl', function($scope,$rootScope,$state) {
$scope.buttons = $rootScope.buttons;
$scope.onCompletedButtonClick = function(){
$state.go('app.homepage');
}
})
完成操作視圖(HTML文件):
<span style="color:white">COMPLETED TravelBuddy</span>
</ion-nav-title>
<ion-content>
<div class="list">
<ion-list>
<ion-item ng-repeat="item in buttons">
{{item}}!
</ion-item>
</ion-list>
<label class="item">
<button class="button button-block button-balanced" ng-click="onCompletedButtonClick()">+</button>
</label>
</div>
</ion-content>
我跑我的移動應用程序後,我不能顯示所有推的項目從列表中,我只看到第一個按下按鈕消息在截圖1中的完成操作中。我怎麼能解決這個問題? screenshot1screenshot2
謝謝您的建議:)但是,當我在控制器中的函數外攜帶$ rootScope.buttons []聲明時,遇到同樣的問題,我再次看到只有一條消息此時按下的按鈕。我認爲我在使用$ rootScope時做錯了什麼。我的目標是聲明一個全局列表,每次控制器工作時,都應該通過按鈕來更新列表。也許錯誤來自'MainCtrl',因爲當它被觸發時,數組被重新初始化並變爲空。你能建議我解決這個問題嗎? – Gizem