1
我正在使用身體標記中的控制器來實例化通過應用程序使用的一些變量,即將在應用程序中使用的語言(基於url參數)。
<!--index.html-->
<body ng-controller="AppCtrl" ng-init="init()">
<section ui-view></section>
</body>
在init()函數,我嘗試使用$ stateParams讀取URL中的「局域網」參數,但它仍然是不確定的:
/*AppCtrl*/
$scope.init = function() {
console.log($stateParams); // prints Object {lan: "en"}
console.log($stateParams.lan); // prints undefined
$timeout(function() {console.log($stateParams.lan);}, 500); //prints "en"
}
很奇怪,因爲我可以看到它打印$ stateParams與.lan屬性我無法訪問它。
我也配置了$ stateProvider這樣的:
$stateProvider
.state('root', {
url: '/{lan:(?:pt|en)}',
abstract: true,
template: '<div ui-view=""></div>',
params: { lan: { value: 'pt' } },
})
.state('home', {
parent: 'root',
url: '/',
templateUrl: '/front/main/views/front-main.client.view.html'
});
什麼是做到這一點的正確方法?