Как загрузить контроллер по умолчанию для любой загрузки страницы для одностраничного приложения
У меня есть одностраничное приложение, и я хочу, чтобы контроллер загружался только один раз, когда кто-то открывает мой 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>