2016-05-26 3 views
0

В HTML вы можете сделать один контроллер потомком другого, написав его в гнездовой HTML код:Использование ui.router Как сделать один контроллер дочерним?

<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: { 
      '[email protected]': { 
       templateUrl : 'static/templates/child.html', 
       controller : 'ChildController' 
      }, 
     } 
    }) 

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

ответ

0

От ui-routerdocumentation:

Область Наследование View Иерархии Только

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

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

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

+0

так значит ли это, если один 'ui-view' вложен в другой' ui-view', тогда $ scope их контроллеров наследуется? – swang

+0

@swang - правильный. – MaKCbIMKo

Смежные вопросы