Как загрузить контроллер по умолчанию для любой загрузки страницы для одностраничного приложения

У меня есть одностраничное приложение, и я хочу, чтобы контроллер загружался только один раз, когда кто-то открывает мой URL, независимо от состояния.

У меня есть контроллер примерно так:

app.controller('someController', ['$scope', function($scope){
    $scope.somefunction = function(){
      console.log("Some function is called ");
    }
}])

Я хочу, чтобы это загружалось только один раз, когда кто-нибудь открывает мою страницу.

В настоящее время я пытался добавить это в моем файле header.html что-то вроде этого:

<div class="" ng-controller="someController"></div>

Таким образом, я могу вызвать этот контроллер для любой страницы, но проблема в том, что он будет вызываться каждый раз, когда пользователь изменяет страницу.

Я думаю, что может быть какой-то способ добавить эту функцию в app.js или другой лучший способ вызвать только один раз при загрузке страницы.

Может кто-нибудь, пожалуйста, помогите мне здесь.

2 ответа

Решение

Похоже, для того, что вы хотите, вы должны поместить контроллер в родительский div ui-view:

<div class="container" ng-controller="someController">
    <div ui-view></div>
</div>

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

Другой способ - вызвать функцию init.

<div class="" ng-controller="someController" data-ng-init="somefunction()"></div>
Другие вопросы по тегам