2017-09-05 70 views
1

我想將這個值傳遞給一個書呆子控制器,但是無法通過ng-router。不適用於ng-router?

<button type="Submit" ng-click="showUser()">Show Details</button> 

.when('/geeks', { 
    templateUrl: 'views/geek.html', 
    controller: 'GeekController'  
}) 


.when('/nerds', { 
    templateUrl: 'views/nerd.html', 
    controller: 'NerdController' 
}) 

在書呆子控制器我有這個功能

$scope.showUser=function(){ 
    $rootScope.$broadcast('btnName',{message:"msg"}) 
} 

在怪胎控制器我收到在頁面加載自身的價值,但我沒有得到的數值請幫我找到解決

$rootScope.$on('btnName',function(event,args){ 
    $scope.msg=args.message; 
    console.log("$scope.message nnnn",$scope.msg) 
}) 

回答

0

NerdControllerGeekController在兩個單獨的頁面中,一次只能有一個控制器處於活動狀態,因爲角度只有一個pa ge在標籤頁中打開。所以我建議的是,把變量作爲參數傳遞給路由,你可以在下面的例子中看到這個。

JSFiddle Demo

JS:

var routingExample = angular.module('Example.Routing', []); 
routingExample.controller('NerdController', function ($scope, $location) { 
    $scope.showUser = function(){ 
    console.log("show"); 
    $location.path('/geek/1'); 
    } 
}); 
routingExample.controller('GeekController', function ($scope, $routeParams) { 
    $scope.id = $routeParams.id; 
}); 

routingExample.config(function ($routeProvider) { 
    $routeProvider. 
    when('/nerds', { 
     templateUrl: 'home.html', 
     controller: 'NerdController' 
    }). 
    when('/geek/:id', { 
     templateUrl: 'blog.html', 
     controller: 'GeekController' 
    }). 
    otherwise({ 
     redirectTo: '/nerds' 
    }); 
}); 
相關問題