Я знаю, что когда у вас есть директива и контроллер в том же файле, вы этого не делаете. Т.е.Должны ли быть введены угловые директивы в контроллеры?
.directive('example', function() {
})
.controller('MainCtrl', function($scope) {
// could use the example directive in the corresponding html
});
Но я всегда думал, что когда директива находится в другом файле, вы должны вводить его в контроллер. Как это:
example.directive.js
.directive('example', function() {
})
main.controller.js
.controller('MainCtrl', function($scope, example) {
});
Смотрите эту plnkr. В нем директива и контроллер находятся в двух разных файлах, и директива не работает.
Примечание: В моем приложении я использовал angular-fullstack generator, чтобы создать директиву, а директива - это, доступная в контроллере, без необходимости вводить ее. Это из-за генератора?
В любом случае, когда я пытаюсь ввести директиву в контроллер, я получаю сообщение об ошибке unknown provider: exampleProvider
.
Что здесь происходит?
- Нужно ли вам вводить директивы из разных файлов? Если нет, как Angular знает, какие директивы должны быть доступны в контроллере? Все ли они доступны? Почему все они доступны для директив, но не для поставщиков?
- Что происходит, когда директива и контроллер находятся в одном файле, чтобы сделать это, поэтому вам не нужно вводить директиву в контроллер?
Почему мой плнкр не работал? Директива была определена в том же приложении, что и контроллер. –
Вы будете чувствовать себя глупо, но это основа. :-) Вам это нужно в вашем 'index.html':' ' –
А, ок, я слишком привык к генераторам. Большое спасибо! –