J'utilise le routage angulaire dans mon code, pour lequel suit le fragment Snippet. Problème est que le contrôleur principal est appelé deux fois. J'ai déjà pris soin de ne pas le déclarer à nouveau dans le balisage (comme conseillé partout). Je soupçonne qu'il y a quelque chose qui ne va pas dans mon code de routage.Contrôleur appelé deux fois dans AngularJS
app.directive('routeLoadingIndicator', function ($rootScope,$timeout) {
return {
restrict:'E',
link:function(scope, elem, attrs){
scope.isRouteLoading = false;
$rootScope.$on('$routeChangeStart', function(){
scope.isRouteLoading = true;
});
$rootScope.$on('$routeChangeSuccess', function(){
$timeout(function(){
scope.isRouteLoading = false;
}, 10);
});
}
};
});
HTML:
<route-loading-indicator >
<div class="spinner" ng-if='isRouteLoading'>
<div class="rectLoader"></div>
</div>
<div class="right_col" ng-if='!isRouteLoading' style="padding-top: 60px;" ng-view>
</div> </route-loading-indicator>
Controller:
app.controller('main', function($scope,$routeParams,$rootScope){
console.log("main Controller");
});
code d'acheminement:
app.config(function($routeProvider) {
$routeProvider
.when("/", {
templateUrl : "xyz.html",
controller : "main"
})
});
peut vous recréez la question dans un violon –
Publier une exemple complet, un minimum de reproduire le problème. Incluez tous les éléments nécessaires et excluez tous les éléments irrelevants (comme votre routeLoadingIndicator). –
Le code fonctionne correctement. vérifier ceci https://jsfiddle.net/ebinmanuval/c8u34s37/ –