在我的角度項目中,用戶接受一個EULA,然後自動重定向到他們的儀表板,但是,在這個重定向上,DashboardController似乎被調用了兩次,DashboardController被調用我已經檢查過是否意外地在模板中再次調用它,但我沒有。以下是我的路線&控制器。如果我直接訪問URL或通過EULA控制器上的重定向訪問,似乎並不重要,我得到的結果相同。在Ionic(AngularJS)中調用兩次控制器
的路由
.config(function($httpProvider, $stateProvider, $urlRouterProvider) {
$httpProvider.interceptors.push('httpRequestInterceptor');
$urlRouterProvider.otherwise('/');
$stateProvider
.state('login', {
url: '/',
templateUrl: 'templates/login.html',
data: {
requireLogin: false
}
})
.state('eula', {
url: '/eula',
templateUrl: 'templates/eula.html',
data: {
requireLogin: true
}
})
.state('dashboard', {
url: '/groups',
templateUrl: 'templates/dashboard.html',
data: {
requireLogin: true
}
})
});
控制器:
App.controller('DashboardController', ['$scope', 'RequestService', '$state', '$rootScope', function($scope, RequestService, $state, $rootScope){
alert('test');
}]);
任何想法?
將我的HTML按備註
的index.html
<body ng-app="App">
<ion-nav-bar class="bar-positive nav-title-slide-ios7" align-title="center">
<ion-nav-back-button class="button-icon ion-arrow-left-c"></ion-nav-back-button>
</ion-nav-bar>
<ion-nav-view class="slide-left-right"></ion-nav-view>
<ui-view></ui-view>
</body>
dashboard.html
<div class="groups" ng-controller="DashboardController">
<ion-view title="App">
<ion-nav-buttons side="right">
<a ui-sref="groupcreate"><span class="icon ion-ios-plus-outline"></span></a>
</ion-nav-buttons>
<ion-content class="padding">
<div class="row">
<div class="col-50" ng-repeat="group in groups">
{{ group }} 1
</div>
</div>
</ion-content>
</ion-view>
</div>
也許你只包括.JS在兩次的HTML源意外? –
謝謝,但我已經檢查了這一點,它似乎並不是這種情況,我也使用其他控制器,例如一個LoginController,但這只是被調用一次,我不是100%,但它可以做的事情與路由? – ChrisBratherton
這可能有很多原因。它發生在我上個星期,這是因爲我使用離子和控制器被連接到dom。它也在路由中被觸發。如果你也提供你的html,這可能是原因。看到這個職位的可能解決方案列表 - http://stackoverflow.com/questions/15535336/combating-angularjs-executing-controller-twice –