我试图从服务器收到promise之后,从控制器中更改一些$ rootcope变量。angularjs在控制器中承诺后更改rootcope
的$ rootscope变量用来设置html页面的title属性等
下面是我的代码,我创建了一个名为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变量?
你试过运行$ rootScope。$ digest()后所有的根作用域变化? –
@JohnMaclein,谢谢你刚刚尝试过,但它没有工作 – Holly
考虑在这里,你正面临的任何错误信息。 –