Я ищу некоторые рекомендации, которые можно использовать, чтобы определить, какой тип области применения использовать при написании новой директивы. В идеале, мне бы хотелось что-то похожее на блок-схему, которая проведет меня через кучу вопросов и выйдет правильный ответ – новой области видимости, новой области содержимого или новой области выделения; но это, скорее всего, требует слишком многого. Вот мой текущий ничтожный набор рекомендаций:
- Не используйте изолированную область, если элемент, который будет использовать директиву, использует ng-model
См. Могу ли я использовать ng-модель с изолированной областью? и Почему formatters не работает с изолированной областью? - Если директива не изменяет никаких свойств области/модели, не создавайте новую область
- Изолировать области видимости, похоже, хорошо работают, если директива инкапсулирует набор элементов DOM (в документации говорится "сложная структура DOM" ) и директива будет использоваться как элемент или без каких-либо других директив по одному и тому же элементу.
Я знаю, что использование директивы с изолированной областью действия над элементом заставляет все другие директивы того же элемента использовать одну и ту же (одну) область выделения, поэтому это не сильно ограничивает возможность использования области выделения
Я надеюсь, что некоторые из команды Angular -UI (или другие, написавшие много директив) могут поделиться своим опытом.
Пожалуйста, не добавляйте ответ, который просто говорит: "Используйте изолированную область для повторно используемых компонентов".