2016-10-27 47 views
1

是否可以从状态定义中自动设置控制器中的$ scope值?

举例来说,如果我有状态定义

$stateProvider.state("page", { 
    url: "/page", controller: PageController, template: "<div></div>" 
} 

我转到页有这样的参数:

$state.go("page", {param1: 'value1'}); 

是否有可能使用状态的PageController $范围注入参数1定义能够在PageController中调用$ scope.param1并给我值'value1'?

很显然,我只是

$scope.param1 = $stateParams.param1; 

设置在的PageController但我想看看我是否可以包含此作为国家定义的一部分,而不是(像在解决可能)。

+0

你应该能够注入到$ rootScope上app.run像[在此SO交(http://stackoverflow.com/questions/33020974/access-state-inside-template)。同样,你也可以在app.run函数中使用'$ rootScope。$ on('$ stateChangeSuccess',function(event){//设置为$ rootScope}}。 – Mahesh

回答

0

试试这个:

路由:

.state('page', { 
     url: '/page', 
     template: '<div></div>', 
     controller: 'PageController', 
     data : {param1 : 'value1'} 
    }) 

PostController中:

controller('PageController', function($state, $scope){ 
     console.log($state.current.data.param1); 
})