簡體   English   中英

使用$ rootscope將變量從一個控制器傳遞到另一個控制器

[英]Passing variables from one controller to another with $rootscope

我正在嘗試使用$ rootscope將ID從一個控制器傳遞到下一個控制器。 我以為它就像將變量設置為$ rootscope一樣簡單,但是由於某些原因,當我在控制台中簽入時,它作為未定義出現。 這個變量不會改變,我想讓它成為所有后續控制器的“全局”變量。 為什么沒有設置任何原因?

  .controller('CubeHeadCtrl', ['$scope',  '$rootScope', '$stateParams', 'cubeHeadFactory', 'localUserFactory', '$q',  function($scope, $rootScope, $stateParams, cubeHeadFactory, localUserFactory, $q) {

    cubeHeadFactory.get({ urlName: $stateParams.urlName }, function(data){
      $scope.cube = data;
      $rootScope.home_channel_id = $scope.cube.home_channel_id;
    });
  }])


  .controller('CubeLiveCtrl', ['$scope', '$rootScope', '$stateParams', 'cubeHeadFactory', 'cubeLiveFactory',  function($scope, $rootScope, $stateParams, cubeHeadFactory, cubeLiveFactory) {
    $scope.homeid = $rootScope.home_channel_id;

        cubeLiveFactory.query({dynamicChannelID: $scope.homeid}, function(data){
           $scope.cubeLive = data;
           console.log('This is there we check out the ID with = ' +$scope.homeid+ ' isnt that nice');
    });
  }])

除非您有充分的理由,否則不要使用$ rootScope。 改用服務

.factory('MyService',function(){
    return { myVar1:""};
})
.controller('Ctrl1',function($scope,MyService){
    $scope.MyService=MyService;
    MyService.myVar1="foo"
})
.controller('Ctrl2',function($scope,MyService){
    $scope.MyService=MyService;
});

暫無
暫無

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

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