Контроллер angularjs выполняет 2 раза

У меня проблема с тем, что контроллер выполняет два раза, но у меня нет дубликатов, которые я могу видеть (даже при запуске поиска с помощью сенсора в моих файлах отображается только один в конфигурации маршрута и мой фактический контроллер).

Конфигурация маршрута:

$routeProvider.when('/cb159e1ec61d0613f10ab397d8bd6782',{
    templateUrl: view+'passwordreset.html',
    controller:'passwordreset'
});

Контроллер:

App.controller('passwordreset',['$scope','$http',
    function($scope,$http){
        $scope.token='asdf'
        console.log($scope.token); // <-- logs 2x to console
}]);

passwordreset.html:

<div class="row">
    <div class="small-12 columns">
        <fieldset class="content-box">
            password reset {{token}}
        </fieldset>
    </div>
</div>

Кроме того, я создал новый маршрут и попытался, все еще записывая дважды. Я также очистил свой кеш. Некоторые контроллеры выполняются один раз, несколько раз (я помещал предупреждение в несколько контроллеров, некоторые показывали один раз, два раза)

другой пример:

//route config
    $routeProvider.when('/', {
     templateUrl: view+'home',
     controller:'Home'
    });

//template   
        <div ng-controller="testing">a</div>
//controller
Lmu.controller('Home',function($scope){
    $scope.home='home';
    alert($scope.home); <-- alerts 2x (two scopes for Home controller are created)
});

Ответ 1

Я понял проблему. У меня было два макета в зависимости от того, разрешено ли пользователю использование ng-show="user.authorized" и ng-show="!user.authorized". Каждый из них имел <div ng-view>. Каждый ng-view обрабатывается, является ли ng-show true или false.

Я не понял, что все в ng-show обрабатывается, правда ли или нет.

Исправлено: используется ng-switch вместо ng-show. Это предотвращает обработку представления до тех пор, пока условие не будет выполнено.