我試圖從服務器收到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
考慮在這裏,你正面臨的任何錯誤信息。 –