angularjs передать дедушке внуку с компонентами - PullRequest
0 голосов
/ 17 мая 2018

позвольте мне привести пример, если бы я мог с 3 компонентами:

<grandparent>
    <parent>
        <grandson>

Если у деда есть объект, скажем, человек

const person = {
    name: 'William',
    age: 102
}

Как мог бы внукунаследовать это значение от прародителя?

<title={{ $ctrl.person.name }}>

не сработает, потому что $ctrl будет родителем.

в надежде, что мой беззаботный пример взят таким.

Ответы [ 3 ]

0 голосов
/ 17 мая 2018

У вас есть несколько вариантов:

  1. Разверните объект person, передайте его родителю, а родительский - внуку

  2. Используйте сервис для хранения объекта персоны, а внук использует этот сервис для получения объекта персоны

  3. Используйте шаблон, например redux

0 голосов
/ 17 мая 2018

Из документов:

Межкомпонентная связь

Директивы могут require контроллеры других директив включать связь друг с другом.Это может быть достигнуто в компоненте путем предоставления сопоставления объектов для свойства require.Ключи объекта указывают имена свойств, под которыми необходимые контроллеры (значения объектов) будут связаны с контроллером требуемого компонента.

- AngularJS Developer Guide - Межкомпонентная связь

Для получения дополнительной информации см. Справочник по API AngularJS - требуется

0 голосов
/ 17 мая 2018

Проверьте этот plunkr

Вот обновленный код:

<grand-parent>
  <cbs-cus-comp com-bind='grandParentCntAs.name'>
    <child child-com-bind='cbsCusCompCntAs.name'></child>
  </cbs-cus-comp>
</grand-parent>

Вам нужно предоставить что-то вроде ниже, чтобы это произошло:

  var cbsCusComp        =   {
                            transclude  :   true,
                            require: {grandParentComp:'^grandParent'},
                            template    :   'Parent : <b>{{cbsCusCompCntAs.comBind}}</b><br /><ng-transclude></ng-transclude>',
                            controller  :   cbsCusCompCnt,
                            controllerAs:   'cbsCusCompCntAs',
                            bindings    :   {comBind:'='}
                        };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...