У меня было намерение использовать один шаблон в нескольких представлениях с разными контроллерами.
Но теперь я понимаю, что я не могу просто написать универсальную привязку в шаблонах, потому что значения будут помещаться внутри $scope.concreteControllerName
.
Документы Angular для ngInclude говорят, что
Эта директива создает новую область видимости.
Я мог бы использовать директиву ng-init
и передать экземпляр контроллера в область действия шаблона:
<ng-include src="..." ng-init="controller=concreteControllerName"/>
или даже лучше
<ng-include src="..." ng-init="model=getModelForTemplate()"/>
а затем напишите {{controller.boundvalue}}
в шаблоне.
Думаю, это рабочее решение.
И здесь я хотел бы знать, существуют ли другие лучшие подходы, и если нет, следует ли всегда использовать шаблоны с некоторым понятием переданной модели, чтобы абстрагироваться от родительской области?