Я пытаюсь изменить некоторые $ переменные корневого индекса изнутри контроллера после того, как я получил promise из службы.angularjs сменил корневой знак после обещания в контроллере
В $ переменных 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
}]);
Как я могу изменить переменные $ rootcope после того, как получил отсроченное обещание от службы?
Вы пытались запустить $ rootScope. $ Digest() после изменения всей области корневого каталога? –
@JohnMaclein, спасибо, просто попробовал его там, но он не сработал – Holly
Рассмотрите возможность размещения здесь какого-либо сообщения об ошибке. –