[英]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.