Есть пара популярных рекурсивных angular директив Q & A, которые все сводятся к одному из следующих решений:
- вручную инкрементировать "компилировать" HTML на основе состояния области выполнения
- вообще не использовать директиву, но <script> шаблон, который ссылается на себя
В первой версии есть проблема, что вы не можете удалить ранее скомпилированный код, если вы не сможете с достаточной степенью точности управлять процессом компиляции вручную. Второй подход имеет проблему... не являющейся директивой и отсутствующей в ее мощных возможностях, но более срочно ее нельзя параметризовать так же, как может быть директива; он просто привязан к новому экземпляру контроллера.
Я играл с ручным выполнением angular.bootstrap
или @compile()
в функции ссылок, но это оставляет мне проблему с ручным отслеживанием элементов для удаления и добавления.
Есть ли хороший способ иметь параметризованный рекурсивный шаблон, который управляет добавлением/удалением элементов для отражения состояния времени выполнения? То есть дерево с кнопкой add/delete node и некоторое поле ввода, значение которого передается дочерними узлами node. Возможно, комбинация второго подхода с привязанными областями (но я не знаю, как это сделать)?