[英]Scope variable not accessible (undefined) - AngularJS
我在一個控制器中設置一個范圍變量,然后將位置更改為另一個視圖。 然后在新視圖的控制器中,范圍變量不再可訪問,它聲明它是“未定義”。 我在下面添加了問題的簡化版本,並希望得到任何幫助。
app.controller('loginController', function ($scope,$location){
$scope.loginUser = function (user) {
$scope.userId = "USERID";
$location.path('/view3');
}
});
視圖 3 的控制器
app.controller('videoListController', function($scope){
alert("UserID: "+$scope.userId);
});
$scope.userId
的值顯示為'undefined
”。 我究竟做錯了什么?
您還可以在 AngularJS 中使用$rootScope
進行全局訪問
看看這個
app.controller('loginController', function ($scope,$rootScope,$location){
$scope.loginUser = function (user) {
$rootScope.userId = "USERID";
$location.path('/view3');
}
});
app.controller('videoListController', function($scope, $rootScope){
alert("UserID: "+$rootScope.userId);
});
$scope
不在控制器之間共享。 如果您需要在控制器之間傳遞數據,則需要將其存儲在其他持久性位置。
范圍是按控制器定義的...您仍然可以選擇使用$scope.$parent
或$rootScope
來鏈接控制器,但我會謹慎使用它們。
Angular 服務基於單例模式。 您還可以使用它們在控制器之間共享信息,我認為這將是最好的方法。
我發現這之前已經討論過,這里有一些很好的例子:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.