Angularjs 为什么我无法访问控制器ng init上的$stateParams?

Angularjs 为什么我无法访问控制器ng init上的$stateParams?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我在body标记中使用一个控制器来实例化通过应用程序使用的一些变量,即应用程序中将使用的语言(基于url参数) 这很奇怪,因为我可以看到它使用.lan属性打印$stateParams,但我无法访问它 我还将$stateProvider配置为: $stateProvider .state('root', { url: '/{lan:(?:pt|en)}', abstract: true, template: '<div ui-view=

我在body标记中使用一个控制器来实例化通过应用程序使用的一些变量,即应用程序中将使用的语言(基于url参数)

这很奇怪,因为我可以看到它使用.lan属性打印$stateParams,但我无法访问它

我还将$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'
    });
$stateProvider
.state('根'{
网址:“/{lan:(?:pt|en)}”,
摘要:没错,
模板:“”,
参数:{lan:{value:'pt'}},
})
.州(“家”{
父项:'根',
url:“/”,
templateUrl:“/front/main/views/front main.client.view.html”
});

正确的方法是什么?

方法是从此处卸下ng控制器

<body ng-controller="AppCtrl" ng-init="init()">

并将其移动到状态

.state('root', {
    url: '/{lan:(?:pt|en)}',
    abstract: true,
    template: '<div ui-view=""></div>',
    params: { lan: { value: 'pt' } },
    controller:'AppCtrl'
})
.state('root'{
网址:“/{lan:(?:pt|en)}”,
摘要:没错,
模板:“”,
参数:{lan:{value:'pt'}},
控制器:'AppCtrl'
})
总的来说。。各州的
视图
及其
控制器
都是关于用户界面路由器世界的。。。而不是AngularJS ng控制器

<body ng-controller="AppCtrl" ng-init="init()">
.state('root', {
    url: '/{lan:(?:pt|en)}',
    abstract: true,
    template: '<div ui-view=""></div>',
    params: { lan: { value: 'pt' } },
    controller:'AppCtrl'
})