Кросс-директивная функциональная привязка в угловых 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>

0 ответов

Другие вопросы по тегам