2012-05-15 3 views
1

Я пытался реализовать вложенную древовидную структуру в AngularJS. Он состоит из узлов, все из которых управляются одним и тем же типом контроллера. Вы можете найти пример здесь: http://jsfiddle.net/Yfmdy/2/Директивы мыши ведут себя странно во вложенной среде AngularJS

Моя проблема в том, что каждый дочерний узел будет удален и массив «дети» его родителя модифицируется, все родители теряют нг-MouseEnter и нг-MouseLeave поведения.

У кого-нибудь есть идея, что с этим делать? Я что-то пропустил?

ответ

0

Используйте $browser.defer, чтобы испустить $childDeleted событие.
Установить текущий элемент css на display: none; и принудительно выполнить ng-mouseleave.

Пример здесь: http://jsfiddle.net/Ticore/Yfmdy/11/

+0

Большое спасибо, что сделал трюк. Тем не менее, я ожидаю, что это будет работать должным образом, без каких-либо дополнительных знаний о внутренних угловых функциях. Однако добавление «реальной» реализации jquery также исправляет проблему: http://jsfiddle.net/Yfmdy/14/ –

+0

Я тестирую [jsfiddle.net/Yfmdy/14](http://jsfiddle.net/Yfmdy/ 14 /) в Chrome и Firefox все еще не работает. –

0

На самом деле, это ошибка в браузере JavaScript.

JavaScript MouseOver/Out не соответствует действительности.

Чистый JS пример здесь http://jsfiddle.net/GbuNn/6/

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