2013-08-06 3 views
3

Я первый раз angularjs пользователя, и я пытаюсь создать директиву, но я не могу обойти эту ошибку:Trouble создания AngularJS директива

Error: Unknown provider: $scopeProvider <- $scope <- someDirectiveDirective createInjector/providerInjector<@http://localhost:4242/js/lib/angular/angular.js:2734 [email protected]://localhost:4242/js/lib/angular/angular.js:2862 createInjector/instanceCache.$injector<@http://localhost:4242/js/lib/angular/angular.js:2739 [email protected]://localhost:4242/js/lib/angular/angular.js:2862 ... ... ... 

я создаю мое угловое приложение следующий образом:

var app = angular.module(
    "myApp", 
    ... 

Я затем попытаться создать свою директиву в другом файле:

app.directive('someDirective', function($http, $scope, $element, $attrs) { 
    return { 
    restrict: "A", 

затем я использую директиву:

Я уверен, что я делаю что-то действительно тупой, но я понятия не имею.

+5

$ scope - это не то, что вы можете ввести в свою директиву. (Вы можете ввести его в функцию контроллера вашей директивы.) $ Element и $ attrs также не могут быть введены таким образом. –

ответ

7

Попробуйте это:

app.directive('someDirective', function($http) { 
    return { 
    restrict: 'A', 
    link: function(scope, element, attrs) { 

    } 
    }; 
}); 
+0

Да, угадайте, вы не можете вводить $ scope, скопировали это из одной из моих служб, DOH;) Спасибо! – lostintranslation

+1

Вы должны объяснить, в чем проблема. –

+0

Не могли бы вы помочь мне с примером беседки или чего-то подобного в angularjs для [моего вопроса] (https://stackoverflow.com/questions/30974334/need-hierarchical-tree-visualization-in-angularjs)? – Ricky

3

Причина вашей ошибки в том, что Угловая не позволяет вводить $ объем в директиву.

Если вы хотите получить доступ к $ scope изнутри директивы, вы ссылаетесь на нее как на первый аргумент в функции ссылки (см. Ответ Epokk).

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