2016-10-27 78 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); 
})