Должен ли я использовать события или привязку функций в угловых для компонентов, чтобы общаться друг с другом - PullRequest
0 голосов
/ 06 мая 2019

Что рекомендуется:

Родительский шаблон:

<parent>
 <child-component "doSomethingFunction = $ctrl.referrencedDoSomethingFunction()">
</parent>

Дочерний компонент:

child_component = {
                controller: childController,
                require: {
                    parentCtrl: '^^parentComponentCtrl'
                },
                bindings: {
                    doSomethingFunction: '&',
                },
                template:childTemplate
            };

OR

<parent>
 <child-component>
</parent>

Родительский контроллер:

$scope.$on('somethingHappened',  function (event, data) {
                //doSomething now..
            });)

Дочерний контроллер:

  $scope.$emit('somethingHappened')

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

Но рекомендуется ли один путь, чем другой?

1 Ответ

1 голос
/ 06 мая 2019
  1. Обычно предпочитают привязку функций.Компоненты с четким вводом и выводом легко читаются и используются.

  2. Когда это приводит к большому количеству дополнительного кода - когда вы хотите передать что-то из самого нижнего компонента в родительский, например 3-4 уровняВы можете рассмотреть возможность использования событий.Но это довольно редкий случай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...