Кросс-директивная функциональная привязка в угловых 1,5
В угловом приложении 1.5 обе директивы независимы внутри одного приложения. Демонстрация ситуации показана здесь https://codepen.io/adamchenwei/pen/qXRGQp
Вы увидите ошибку, когда в componentA не найдена функция его компонента, которая, как предполагается, связывается с функцией componentB. Интересно, есть ли способ связать функцию в двух разных директивах, не проходя через главное приложение?
Если мне нужно пройти через основное приложение, каков наиболее оптимальный способ сделать это?
Js
var app = angular.module('github', []);
app.directive('componentB',() => {
return {
scope: {
updateA: '=',
},
template: `<div> B </div>`,
controllerAs: 'componentBCtrl',
controller: () => {
this.callMePlz = (newVal) => {
console.log('hehe');
console.log(newVal);
}
}
};
})
app.directive('componentA',() => {
return {
scope: {
updateA: '=',
},
template: `<div> A </div>`,
controllerAs: 'componentACtrl',
controller: () => {
console.log('a is running'); this.updateA('madness');
}
};
})
HTML
<div ng-app="github">
<!-- compA has a change take places which trigger a change of value in compB -->
<component-a
update-a="componentBCtrl.callMePlz"
>
</component-a>
<component-b>
</component-b>
</div>