簡體   English   中英

范圍變量不可訪問(未定義) - AngularJS

[英]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 服務基於單例模式。 您還可以使用它們在控制器之間共享信息,我認為這將是最好的方法。

我發現這之前已經討論過,這里有一些很好的例子:

AngularJS 服務在控制器之間傳遞數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM