2017-09-05 12 views
1

コントローラーを変えてng-routerに渡すことができないように、1つのネッカーコントローラーに値を渡したい。オタクコントローラでng-routerでbroadcastとemitが動作しないのですか?

<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' 
}) 

私は、ページの読み込み自体に価値を受け取るが、私は価値がPLSソリューション

$rootScope.$on('btnName',function(event,args){ 
    $scope.msg=args.message; 
    console.log("$scope.message nnnn",$scope.msg) 
}) 
を見つけるために私を助けて得ていないのです

オタクコントローラで
$scope.showUser=function(){ 
    $rootScope.$broadcast('btnName',{message:"msg"}) 
} 

この機能を持っています

答えて

0

NerdControllerGeekController 2つの別々のページにある角度が一つだけのPAを持っているので、一つだけのコントローラは、一度にアクティブにできますタブで開く。だから私が示唆しているのは、経路にパラメータとして変数を渡すことです、あなたは下の例でこれを見ることができます。

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' 
    }); 
}); 
関連する問題