1
bodyタグのコントローラを使用して、アプリケーションを通じて使用されるいくつかの変数、つまりアプリケーションで使用される言語(URLパラメータに基づく)をインスタンス化しています。私は$ stateParamsを使用して、URLから「LAN」のparamを読み取ろうが、それはまだ未定義のinit()関数で
<!--index.html-->
<body ng-controller="AppCtrl" ng-init="init()">
<section ui-view></section>
</body>
:
/*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'
});
これを行うための正しい方法は何ですか?