У меня есть контроллер, зарегистрированный как это:Как я могу использовать зарегистрированный контроллер в моей угловой директиве?
myModule.controller('MyController', function ($scope, ...some dependencies...)
{
....
Использование ng-controller="MyController"
в HTML все работает отлично, но теперь я хочу использовать этот контроллер в качестве контроллера моей директивы. Некоторые вещи, как это:
otherModule.directive('myDirective', function() {
return {
restrict: 'A',
replace: true,
controller: ??????????,
scope: {
foo: '=',
blah: '=',
},
template: '....'
}
});
Я устал просто положить MyController
, но это ошибки, говоря «MyController не определен». Я уверен, что если бы я просто поместил MyController
в глобальное пространство имен, это сработает нормально, но я не хочу ничего в глобальном пространстве имен. Если это имеет значение, myModule
определяется как зависимость для otherModule
. Как я могу получить ссылку на этот контроллер для моей директивы для использования?
Как было предложено, я попытался $controller('MyController')
, но теперь я получаю следующее сообщение об ошибке:
Error: Unknown provider: $scopeProvider <- $scope <- myDirectiveDirective
at Error (<anonymous>)
at http://localhost/resources/angular.js?_=1360613988651:2627:15
at Object.getService [as get] (http://localhost/resources/angular.js?_=1360613988651:2755:39)
at http://localhost/resources/angular.js?_=1360613988651:2632:45
at getService (http://localhost/resources/angular.js?_=1360613988651:2755:39)
at invoke (http://localhost/resources/angular.js?_=1360613988651:2773:13)
at Object.instantiate (http://localhost/resources/angular.js?_=1360613988651:2805:23)
at http://localhost/resources/angular.js?_=1360613988651:4621:24
at otherModule.directive.restrict (http://localhost/resources/app.js?_=1360613988824:862:15)
at Object.invoke (http://localhost/resources/angular.js?_=1360613988651:2786:25)
я не уверен, что сделать из этой ошибки. Нужно ли больше делать эту работу?
это немного странно иметь контроллер функции конструктора директиву определимся вне директивы. Если по какой-либо другой причине аргументы для инъекций различаются для функций конструктора контрольных контроллеров и функций контроллера контроллера ng-controller. –