2014-09-14 5 views
3

я вводил 2.1.1 версии ngtagsinput, как это в мой контроллер:Неизвестный поставщик: ngTagsInputProvider <- ngTagsInput

app.controller('homeCtrl', ['$scope','$http','ngTagsInput', function($scope,$http){ 
}]) 

* Примечание: ПРОВЕРЕНО! add ngTagsInput в функцию() не будет иметь значения ...

Я загрузил ngtagsinput lib после angularjs lib.

Интересно, что еще я мог проверить, чтобы решить эту Простейшая еще сводит меня ошибка гайки:

Error: [$injector:unpr] Unknown provider: ngTagsInputProvider <- ngTagsInput 
http://errors.angularjs.org/1.2.9/$injector/unpr?p0=ngTagsInputProvider%20%3C-%20ngTagsInput 

Не поймите меня неправильно, я знаю, что в основном этот провайдер не обнаружен.

но мой Lib найден (не сообщили 404), я видел ngTagsInput использовал в своей библиотеке ....

Таким образом, его действительно пристанет мне такое же решение больше не работает для этой библиотеки! Что особенного в этой библиотеке и почему эта ошибка существует, когда я встретил весь стандарт, чтобы исправить это?

Plz help thanks!

+2

добавить 'ngTagsInput' к вашей функции:' function ($ scope, $ http, ngTagsInput) {' –

+0

@Matt Way Tried. Это не работает. то же – Ezeewei

+0

и добавить 'ngTagsInput' в модуль требуется массив. –

ответ

7

Похоже, вы пытались ввести ngTagsInput в свой контроллер, в то время как вы должны вводить его в свой модуль в качестве зависимости. Например:

angular.module('myApp', ['ngTagsInput']) 

модуля ноты, а не контроллер

Вы можете видеть, как на пример создателей: https://github.com/mbenford/ngTagsInput#example


Это происходит потому, что существует несколько видов инъекций, используемых в угловом , Когда вы объявляете модуль, вам нужно указать, какие другие модули доступны для использования в вашем модуле.

См: https://docs.angularjs.org/guide/module

Когда вы впрыснуть в контроллер скажем, вы в основном говорят, что вы хотите использовать конкретный объект внутри него. Этот объект должен быть частью вашего модуля, чтобы он был действительным. Для сторонней библиотеки это обычно означает добавление ее в качестве зависимости от модуля (как указано выше), а затем впрыск любого объекта, который является частью этой библиотеки, в ваши контроллеры и службы.

+0

О, ничего себе !!!! Почему это происходит? Почему эта служба привязывается к модулю, но не может быть применена к контроллеру? Плз разработать, это очень интересно! – Ezeewei

+1

@Chen ngTagsInput - это ** директива **, а не сервис. Вы должны использовать его как пользовательский элемент HTML в своей разметке. Для получения дополнительной информации посетите страницу [Начало работы] (http://mbenford.github.io/ngTagsInput/gettingstarted). –

+0

@Michael Benford Означает ли это, что директива не может применяться к контроллеру, а только к модулю? – Ezeewei

 Смежные вопросы

  • Нет связанных вопросов^_^