我希望将值传递给一个书呆子控制器到极客控制器,但无法传入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'
})
在Nerds控制器中我有这个功能
$scope.showUser=function(){
$rootScope.$broadcast('btnName',{message:"msg"})
}
在极客控制器中我收到页面加载本身的值,但我没有得到值pls帮我找到解决方案
$rootScope.$on('btnName',function(event,args){
$scope.msg=args.message;
console.log("$scope.message nnnn",$scope.msg)
})
答案 0 :(得分:0)
NerdController
和GeekController
位于两个单独的页面中,一次只能有一个控制器处于活动状态,因为angular只有一个页面在选项卡中打开。所以我建议将变量作为参数传递给路线,你可以在下面的例子中看到这一点。
<强> 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'
});
});