Angularjs 如何在父视图中获取$stateparms?

Angularjs 如何在父视图中获取$stateparms?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我想用标签内容制作标签。 选项卡内容有自己的视图。 下面是代码示例 (function () { angular .module('infirma.konfiguracja', ['ui.router']) .config(routeConfig) ; routeConfig.$inject = ['$stateProvider']; function routeConfig($stateProvider) {

我想用标签内容制作标签。 选项卡内容有自己的视图。 下面是代码示例

(function () {
    angular
        .module('infirma.konfiguracja', ['ui.router'])
        .config(routeConfig)
    ;


    routeConfig.$inject = ['$stateProvider'];
    function routeConfig($stateProvider) {
        $stateProvider
            .state('app.konfiguracja', {
                url: 'konfiguracja/',
                views: {
                    'page@app': {
                        templateUrl: 'app/konfiguracja/lista.html',
                        controller: 'konfiguracjaListaCtrl',
                        controllerAs: 'vm'
                    }
                },
                ncyBreadcrumb: {label: "Ustawienia systemu"}
            })
            .state('app.konfiguracja.dzial', {
                url: '{dzial:.*}/',
                views: {
                    'dzial@app.konfiguracja': {
                        templateUrl: 'app/konfiguracja/dzial.html',
                        controller: 'konfiguracjaDzialCtrl',
                        controllerAs: 'vm'
                    }
                },
                ncyBreadcrumb: {label: "{{vm.nazwaDzialu}}"}
            })
        ;
    }
})();
我想标记处于父状态的所选选项卡(
app.konfiguracja

问题是,当输入类似于
/konfiguracja/firmy/
的url时,
app.konfiguracja
控制器中没有
$stateParams.dzial

如何修复它?

我创建的。我想说,至少有两种方法

第一种通用方法是,如何在父视图中使用
UI路由器及其所选参数(标记所选选项卡/链接),应使用指令
**UI sref active**

ui-sref-active="cssClassToBeUsedForSelected"
所以这可能是用法:

<a ui-sref="app.konfiguracja.dzial({dzial: item.id})" 
      ui-sref-active="selected"
      >{{item.name}}</a> 
用法可能是这样的

<span ng-if="item.id == Model.dzial">This is selected</span>
这是选中的
第二种方法是如何工作的?检查文档:

请记住,如果您的状态视图是嵌套的,则范围属性仅继承状态链。范围属性的继承与状态的嵌套无关,而与视图(模板)的嵌套有关

完全可能存在嵌套状态,其模板在站点中的各种非嵌套位置填充ui视图。在这种情况下,您不能期望在子状态的视图中访问父状态视图的范围变量


检查所有正在运行的

您可以绑定到父级
$scope
中的
$stateChangeStart
$stateChangeSuccess
,以便在路由/状态激活时获取参数。启动控制器
KonfiguracjalistCtrl
时它不工作-否
$stateChangeStart
事件:/安瑟。我不能使用第二个选项,因为我将隔离作用域与
controllerAs
一起使用,但第一个非常有效!如果这有帮助的话,那就太好了;)享受强大的
UI路由器
;)
<span ng-if="item.id == Model.dzial">This is selected</span>