Что рекомендуется:
Родительский шаблон:
<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 в форме привязки, чтобы пользователь компонента мог знать, что ему нужно, прежде чем он будет использовать компонент.
Но рекомендуется ли один путь, чем другой?