2013-05-09 8 views
1

У меня есть некоторые проблемы с областью действия вложенных директив. У меня есть две директивы: столбец и вложенное меню. Их структура может быть что-то вроде:Angular.JS - Директива, внутри директивы, внутри директивы, внутри директивы. Проблемы с областью

  • колонка
    • вложенных меню
    • вложенного-меню
      • вложенного-меню
      • другого контента
    • вложенного меню
    • другой контент
  • колонка
    • другое содержание

Колонка имеет переменную, в которой все вложенные меню должны реагировать. Я попытался сделать эту работу несколькими способами, с помощью которых я нашел Google, например, трансляцию событий из директивы column (по какой-то причине вложенное меню только увидело событие, когда я транслировал его из $ rootScope), установив директивный контроллер в столбец и хранение переменной там (я могу прочитать его, но я не могу смотреть его).

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

Я сделал упрощенную Plnkr базовой структуры, которая не работает. http://plnkr.co/edit/1GP7SKacO777og8PysNF

Спасибо!

ответ

2

Я не уверен, как вы хотите, чтобы это вел себя точно. Но вот плукер, который решает две директивы, взаимодействующие друг с другом.

nested-menu только рассчитывает column у своего родителя, но вы можете изменить его, чтобы ожидать другого nested-menu в своем родителе, если хотите.

Вот рабочий плункер. Надеюсь это поможет.

http://plnkr.co/edit/IAn9Ib8sSkQwKx6mpsm5?p=preview

+0

Hi Ganaraj. Это очень близко к тому, что я хочу, большое спасибо. Я хочу, чтобы он вел себя так, потому что поведение вложенного меню зависит от состояния столбца. Однако мне также нужно выслушать значение в директиве вложенного меню (не только в представлении). Есть ли у вас какие-либо идеи о том, как достичь этого? – ricardogo

+0

Ха, мне удалось наблюдать за функцией контроллера: http://plnkr.co/edit/9nIhoObRLbkSyiwKCQri Я принимаю ваш ответ. Я сделал простой тестовый пример в этом plnkr, где функция работает, но простая переменная не работает. Ты знаешь почему? – ricardogo

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