В настоящее время я изучаю AngularJS, и я пытаюсь понять функцию перехода. Я читал разные статьи о трансклюзии, и теперь я понимаю разницу между transclude: true
и transclude: 'element'
.
Однако для меня не ясно, когда я должен его использовать. Вокруг много статей, но я могу найти практические примеры использования в реальном мире.
Поэтому я был бы очень признателен, если кто-то может мне помочь и продемонстрировать реальный пример использования трансклюзии и ответить на следующие вопросы:
ng-repeat
а не cloneFn
? В моем понимании, transclude:true
используется, когда вам нужен контейнер. Это означает, что вы не знаете, какие пользователи вашей директивы будут помещены в ваш контейнер. Примером может служить диалоговое окно с общими частями, включая заголовок, кнопку закрытия и т.д. Но вы не хотите ограничивать вещи, которые могут быть помещены в это диалоговое окно. В этом случае, используя transclude:true
, чтобы вы могли помещать любое произвольное содержимое внутри директивы.
Ссылка: https://docs.angularjs.org/guide/directive
Мы видели, что вы можете передавать модели в директиву с использованием области изоляции, но иногда желательно иметь возможность передавать весь шаблон, а не строку или объект. Скажем, что мы хотим создать компонент "диалогового окна". Диалоговое окно должно иметь возможность обернуть любое произвольное содержимое.
Это более или менее не учитывает эффективность. Просто ознакомьтесь с гибкостью директив.
ng-repeat
- это совсем другая история. Он используется для повторения итерируемых коллекций.