Если у вас есть 3 отдельных раздела на странице, которые имеют очень похожий код контроллера, похоже, что вы должны использовать директиву. Даже если вам не нужно напрямую управлять DOM (что является классической причиной использования директивы), и для этого нужны только стандартные привязки данных с угловыми данными, тогда это хороший способ повторного использования контроллеров в разных контекстах с помощью атрибутов, установленных на директивы.
Вы можете увидеть рабочую plunkr в
http://plnkr.co/edit/qclp6MOxGWP7Ughod4T8?p=preview
Но ключевым моментом является то директивы могут связывать-переменные в контроллере своего родительского осциллографа. Скажем, в родительской области у вас есть 3 переменные, так:
$scope.myVariable1 = 'Value 1';
$scope.myVariable2 = 'Value 2';
$scope.myVariable3 = 'Value 3';
Затем вы можете установить 3 экземпляра директивы в шаблоне:
<my-directive my-param="myVariable1"></my-directive>
<my-directive my-param="myVariable2"></my-directive>
<my-directive my-param="myVariable3"></my-directive>
Тогда каждая директива может использовать переменную в ' мои-пары «атрибут
scope: {
'myParam':'='
}
„=“означает, что в рамках директивы у вас есть переменные, которая называется„MyParam“, что равно (+ обязаны) переменный, указанные в» my- атрибут param е директива. Так на шаблоне директивы, вы можете использовать:
<div>Value of parameter: {{myParam}}</div>
И в контроллере директивы, вы имеете доступ к как:
$scope.myParam
И тогда должны быть в состоянии настроить его поведение основанный на myParam этого экземпляра.
Вы можете использовать '.value (" valueId ", someValue)' и ввести его в контроллер с помощью функции ($ scope, ..., valueId) ' –
реорганизовать 3 контроллера в службу и внедрить сервис для каждого контроллер. –