Controller wird zweimal genannt, in Ionic (AngularJS)
In meinem angular Projekt akzeptiert der Nutzer die EULA dann bekommen Sie automatisch weitergeleitet, um Ihre Armaturenbrett, jedoch auf dieser Umleitung die DashboardController zu sein scheint, wird zweimal genannt, die DashboardController genannt wird, auf der Strecke selbst habe ich überprüft, um zu sehen, wenn ich versehentlich nannte es wieder in der Vorlage, aber ich havn ' T. Unten ist meine route & controller. Es scheint nicht egal, wenn ich direkt auf die URL zugreifen, oder über die Umleitung auf die EULA-controller, bekomme ich das gleiche Ergebnis.
Die Routen
.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
}
})
});
Die Steuerung:
App.controller('DashboardController', ['$scope', 'RequestService', '$state', '$rootScope', function($scope, RequestService, $state, $rootScope){
alert('test');
}]);
Irgendwelche Ideen?
NOCH MEINE HTML ALS PRO-KOMMENTARE
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>
- vielleicht haben Sie einfach aufgenommen die .JS zweimal in Ihrem HTML-Quelltext durch einen Unfall?
- Danke, aber ich habe überprüft, und es scheint nicht der Fall zu sein, ich bin auch mit anderen Controllern zum Beispiel einen LoginController aber dieser wird nur einmal aufgerufen, ich bin nicht 100%, aber könnte es sein, etwas zu tun mit dem routing?
- es kann viele Gründe für diese. Es geschah mir Letzte Woche und es war, weil ich mit der Ionischen und der controller verbunden war, um den dom. Es war auch immer ausgelöst, in der routing. Wenn Sie Ihre html-auch dies kann der Grund sein. finden Sie in diesem Beitrag eine Liste der möglichen Lösungen - stackoverflow.com/questions/15535336/...
- Danke @Paul Fitzgerald, ich habe meine HTML in Frage. Wie Sie sehen können, bin ich nicht mehr aufrufen die DashboardController in den Routen, aber ich bin in der dashboard.html Datei.
- Könntest du ein plunkr so können wir sehen, Ihre Vorlagen sowie Ihre routing in Aktion?
- Ich bin auf meinem Handy im moment so ein bisschen schwieriger zu überprüfen, aber können Sie versuchen, entfernen
ng-app="App"
aus<body ng-app="App">
- Ich habe versucht zu entfernen, dass aber die ganze app nicht, spielt eigentlich keine Belastung, nichts, wahrscheinlich dazu führen, dass die app nicht deklariert.
- Sorry, aktualisiert der Frage-Titel, das ist eine Ionische Projekt, wenn das einen Unterschied macht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
ui-router
Sie nicht verwendenng-controller
. Sie haben es in Ihrem dashboard.html, ein anderes erzeugt wird, durchui-router
- das ist, warum es ist zweimal getroffen.ng-controller="DashboardController"
aus dashboard.html - wenn Sie Zugriff auf Ihr dashboard route controller ist zweimal genannt, weil es im HTML-template und wird automatisch generiert, durchui-router
.controller
Eigenschaft in route config - mein bad.Ok so nach einer langen Zeit mit Debuggen und überprüfen Sie Dinge aus, fand ich heraus, dass es ein Problem in Bezug auf die Nav Bar in der Ionischen, im wesentlichen, ich war den Aufruf
<ui-view></ui-view>
&<ion-nav-view></ion-nav-view>
auf der gleichen Seite, also im Grunde eine Verdoppelung bis auf meine Ansichten, die wiederum den Aufruf der controller-zweimal.Ich weiß, das wurde bereits beantwortet, aber ich wollte noch hinzufügen mein fix für das exakt gleiche problem.
Meine Controller waren auch zweimal angerufen, aber in meinem Fall hatte ich einen Kommentar aus der
ng-controller
Einstellungen in verschiedenen Dateien:Meine config-Funktion in der Haupt-app.js
Da war ich bereits nannte es, in der markup:
Die controller-Taste innerhalb von " meine Richtlinien
Wieder, da war ich schon ruft es aus in der template-markup: