Я пытаюсь изменить некоторые переменные $rootscope внутри контроллера после получения обещание службы.
Переменные $rootscope используются для установки атрибута заголовка html-страницы и т. д.
Ниже приведен код, который у меня есть. Я создал функцию changeRootPageNotFound()
для изменения переменных $rootscope. Не работает, если вызывается в функции promise.then
.
app.controller('mainController', ['$routeParams', '$scope', '$rootScope', 'mainService', function ($routeParams, $scope, $rootScope, mainService) {
var mainCtrl = this;
mainCtrl.id = $routeParams.itemId;
var promise = mainService.getData($routeParams.id);
promise.then(function (response)
{
if (response.data.data) {
mainCtrl.data = response.data.data;
} else {
mainCtrl.data = false;
changeRootPageNotFound();
}
});
function changeRootPageNotFound() {
$rootScope.title = "Page Not Found - 404";
$rootScope.titleSuffix = "";
}
// changeRootPageNotFound(); // works here
}]);
Как я могу изменить переменные $rootscope после получения отложенного обещания от службы?