2013-11-24 3 views
0

Я создаю приложение на основе AngularJs и API GMaps v3. Проблема, с которой я столкнулся, заключается в том, что мне нужен способ вызова методов контроллера директивы из других директив (это легко с требуют) и из той же директивы.Контроллер Inject Directive в той же Директиве

Давайте положить его в качестве примера:

Я получил директиву, которая делает карту с помощью JS Gmaps LIB. а также сделать некоторые маркеры, а также у меня есть другая директива, которая обрабатывает навигацию (т. е. изменение маршрутов). Когда я иду от маршрута А до маршрута В, мне нужно стереть маркеры и оставить карту пустой.

Так что это лучший способ добиться этого? Должен ли я строить три директивы? Один со всеми методами рендеринга и уничтожает методы маркеров, а затем вызывает их из других директив? Или есть способ ввести контроллер директивы в ту же директиву?

ответ

0

controller по директиве выполняется перед функцией link и все $scope заявления, сделанные в контроллера доступны на scope той же директивы.

Следовательно, контроллер - это, введенный в эту директиву.

Демо: http://plnkr.co/edit/HnwJ0w0VTLbNOC87k74n?p=preview

+0

мммм, я пытался что-то вроде этого: контроллер: функция() { this.method = функция() { сделать что-то } }, ссылка: функция (контроллер) { контроллер .method(); } И не работал :( –

+0

@FacuFerrari Проверьте прилагаемую демо. –

+0

ммм, я думаю, что если я прикрепить его к $ объема было бы то же самое, что объявление метода в глобальном контроллере. Не это? –

Смежные вопросы