2017-09-05 40 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' 
    }); 
}); 
相关问题