2013-08-06 97 views
3

我是第一次angularjs用戶,我試圖創建一個指示,但我不能這個差錯,:無法建立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

$範圍是不是你可以注入你的指令。 (您可以將它注入到您的指令的控制器函數中。)$ 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的答案)。