Использование пользовательского интерфейса.маршрутизатор как сделать один контроллер дочерним для другого?

В html можно сделать один контроллер дочерним для другого, написав его во вложенном html-коде:

<div ng-controller="parentCtrl">
  <div ng-controller="childCtrl">

Но используяui.router, Вы можете указать только одно состояние, являющееся дочерним для другого, как сделать так, чтобы контроллер также наследовал от контроллера родительского состояния? Например:

$stateProvider
    .state('parent', {
        url: '/',
        views: {
            'content': {
                templateUrl : 'static/templates/parent.html',
                controller  : 'ParentController'
            },

        }
    })
    .state('parent.child', {
        url: '/child',
        views: {
            'content@': {
                templateUrl : 'static/templates/child.html',
                controller  : 'ChildController'
            },
        }
    })

В этом случае ChildControllerнаследуется от ParentControllerавтоматически? Если нет, то как это сделать?

1 ответ

  1. Из ui-router документации:

    Наследование области только иерархией представлений

    Имейте в виду, что свойства области наследуют только вниз по цепочке состояний
    если представления состояний вложены. Наследование области
    свойства не имеют ничего общего с вложенностью состояний и
    все, что связано с вложенностью ваших представлений (шаблонов).

    Итак, ответ-это зависит. Это зависит от того, как вы настроили/указали свои представления в цепочке состояний.

    Надеюсь, это поможет.