@Pogran

Как передать из контроллера функцию в директиву?

У меня есть функция в контроллере test. И мне надо её передать в directive и вызывать её там.
директива выглядит вот так
/** @ngInject */
    function segment() {
        return {
            replace: true,
            link: link,
            restrict: 'E',
            scope: {},
            bindToController: {
              segments: '=',
              type: '@'
            },
            templateUrl: 'app/audience/segment.template.html',
            controller: SegmentDirectiveController,
            controllerAs: 'ctrl'
        };

        function link(scope, el, attr, ngModel) {

        }
    }

    /** @ngInject */
    function SegmentDirectiveController() {
function removeSegment(segment, type) {
  // вот тут я хочу вызывать эту функцию.
}
}


Как мне это сделать?
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
AMar4enko
@AMar4enko
{ 
  bindToController: {
    segments: '=',
    type: '@',
    onRemoveSegment: '&'
  }
}

function removeSegment(segment, type) {
  directiveController.onRemoveSegment({$someInformation: 'Segment ' + segment + ' removed'});
}

<directive on-remove-segment="$ctrl.segmentRemoved($someInformation)"></directive>

this.segmentRemoved = function($someInformation) {
  console.log('Callback function ivoked with', $someInformation);
};
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
scope: {
'close': '&onClose'
},

https://docs.angularjs.org/guide/directive
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы