2015-11-25 3 views
1

У меня есть директива DirectiveA, которая имеет метод x, определенный внутри своего контроллера. Мне нужно вызвать этот метод из контроллера другой директивы (DirectiveB).вызов метода директивного контроллера от другого контроллера директивы

Проблема с приложением, над которым я работаю, потому что, когда вам нужно перейти к определенному маршруту, вы в основном вызываете другую директиву, которая затем отображается угловым. Я ищу, чтобы найти способ вызова метода x после того, как страница была отображена. То, что x будет отображать элемент на моей странице, когда он вызывается.

Можете ли вы мне помочь?

+0

использования„требуют“в directiveB для вызова directiveA. В вашей «ссылке» в directiveB вы можете добавить directiveACtrl в качестве 4-го параметра. – gerl

ответ

1

Возможно, вы захотите использовать события, вы можете запустить событие до области действия с помощью $emit или вниз, используя $broadcast. Вы захватываете/подписываете событие, используя прослушиватель $on.

Так, на контроллере вашей директивы вы будете слушать событие (Вы также можете подписаться $rootScope, но тогда вам нужно вручную отвязать слушателю по директиве уничтожить)

$scope.$on('mySpecialEvent', function (event, data) { 
    ... DO YOUR STUFF ... 
}); 

И на DirectiveB вы будете стрелять событие, когда вы хотите выполнить действие в DirectiveA «s слушателя:

$rootScope.$broadcast('mySpecialEvent', 'HI'); 
Смежные вопросы