Я пытаюсь связать две вложенные директивы, которые используют изолированные области.Как связать вложенные директивы, которые используют изолированные области в angularjs
<div ng-controller="myController">
<my-dir on-done="done()">
<my-dir2 on-done="done()">
</my-dir2>
</my-dir>
</div>
Я хотел бы вторую директиву (мой-dir2) для вызова функции сделали() первой директивы (мой-дир), который в свою очередь, назвал бы один контроллер.
К сожалению, я не знаю, как заставить вторую директиву обращаться к обратному вызову первой директивы (до сих пор вторая директива просматривает контроллер высокого уровня, минуя первую директиву).
Я думаю, что можно использовать «require», но я не могу, поскольку эти две директивы не связаны (я хочу использовать my-dir2 внутри других директив не только my-dir).
Чтобы было ясно: я не хочу использовать запрос, потому что это означает, что на myDir2 будет установлена зависимость myDir. Я хочу сказать: я хочу иметь возможность повторно использовать myDir2 внутри других директив. Поэтому я не хочу, чтобы myDir2 был основан на myDir, но я хочу сообщить верхнюю директиву (myDir), когда что-то сделано (например, в обратном вызове в js).
Я сделал plunker: как вы можете видеть в консоли javascript, my-dir2 вызывает непосредственно функцию done из контроллера высокого уровня.
У кого-нибудь есть чистый способ справиться с такой ситуацией?
Благодаря
Спасибо за вашу помощь, к сожалению, как я уже сказал, я не хочу использовать запрос, потому что это означает, что будет моя зависимость от myDir на myDir2. Я хочу сказать: я хочу иметь возможность повторно использовать myDir2 внутри других директив. Поэтому я не хочу, чтобы myDir2 основывался на myDir, но я хочу сообщить верхнюю директиву, когда что-то сделано. – nlko
@nlko вы можете использовать события как средство коммуникации между директивами, проверить этот ответ http://stackoverflow.com/a/14502755/158421 он объясняет концепцию в контроллерах, которые также могут применяться к директивам –
Спасибо Мохаммад за указание на меня это. Я думаю, что третье решение (излучение события от ребенка к родительскому лицу, где родитель может свободно его поймать), похоже, соответствует моей потребности. Я даю вам точку (если вы предпочитаете создать новый ответ)! – nlko