Мой шаблонный файл становится большим и слишком сложным (~ 200 (длинных) строк кода, 9 уровней отступа), и поэтому он тоже становится склонным к ошибкам. Я ищу простое решение, которое позволяет мне получить доступ к переменным и функциям $scope
без слишком большой головной боли.Modularize Angular template
Моя первая идея состояла в том, чтобы использовать ngInclude
, но поскольку я видел, что он становится взломанным, если я хочу получить доступ к переменным.
Другая идея заключалась бы в использовании директив, но это тоже не похоже на то, как я не хочу добавлять отдельные директивы для каждого шаблона.
Моя последняя идея - написать общую директиву, которая использует его родителей $scope
и может получить доступ к ее функциям. Это считается хорошей практикой? Каковы возможные подводные камни/недостатки трансклюзии?
Я делаю некоторые «шаблонные» html-файлы с большим доступом к переменным $ scope и использую их с ng-include без проблем. в чем проблема, с которой вы сталкиваетесь, когда говорите «она становится взломанной, если я хочу получить доступ к переменным»? – AlainIb
Я имею в виду, что я смотрел на этот ответ, и у него не было четкого ответа: http://stackoverflow.com/questions/25678560/angular-passing-scope-to-ng-include – fodma1
Все ответы здесь одинаково хороши - - Одна вещь, которую вам следует избегать, - это доступ к свойствам родительского объекта $ scope. Попробуйте разделить модули/директивы/контроллеры на основе их функциональности с наименьшими зависимостями. Если какой-либо контроллер/директива нуждается в некоторой информации для работы, передайте ее с помощью инъекции зависимостей или с помощью директивных аргументов. – null