2015-06-22 2 views
0

У меня есть страница с двумя директивами. 1. Директива, в котором перечислены элементы, эти элементы имеют свойство на них называют URL-адрес 2. директиву на той же странице, которая принимает URL и отображает егоДиректива для директивной коммуникации?

То, что я хочу сделать, это, когда пользователь нажимает на одну из элементы в первой директиве, чтобы отправить этот item.url во вторую директиву в качестве параметра?

Каковы наилучшие методы для этого сценария?

+0

Может быть, [это] (https://thinkster.io/a-better-way-to-learn-angularjs/directive-to-directive-communication) может помочь вам. – arman1991

+0

Используйте переменные области видимости в каждом и выйдите и обратно в – ajmajmajma

ответ

1

Несколько способов для достижения этой цели:

Общие Родитель Сфера недвижимости

В частности родительский контроллер, охватывающий оба ваших директив имеет свойство для хранения выбранного URL. Затем это свойство передается в оба ваших дочерних директивы.

например.

<parent> 
    <directive-one data-selected-url="selectedUrl"></directive-one> 
    <directive-two data-url-to-display="selectedUrl"></directive-two> 
</parent> 

Broadcast События

Есть директива один транслируют событие на области, которая является общим для обеих директив.

например.

в директиве одном:

$scope.$broadcast('urlSelected', selectedUrl); 

в директиве два:

$scope.$on('urlSelected', function(event, selectedUrl) { ... }); 

Примечание: как я упоминал объем должен быть общим сфера между двумя директивами, а широковещательный посылает событие ВНИЗ цепочка областей действия ($ emit отправляет ее).

Доступ к Родительские Контроллеры

Вы можете сохранить выбранный адрес в родительской директивы и имеют оба ребенка требуют, чтобы директивы. Затем они оба смогут установить/получить свойство из родительской директивы.

например. в дочерних директивах:

require: 'parentDirective' 
link: function (scope, element, attrs, parentCtrl) {...} 
+0

P.S Я бы рекомендовал первый подход. Это самое простое и логичное решение для вашего сценария. –

+0

Пол, вы предлагаете подход к вещам, который я предполагаю? – Pacman

+0

Первый подход более идеален, я бы сказал, т. Е. Переменная родительской области –

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