AngularJS:指令找不到注入的依赖项

问题描述 投票:3回答:2

这是我的朋克-http://plnkr.co/edit/uqSB1gIz6XEmJfC8zHNb?p=preview

我正在尝试注入Angular Strap

index.html包括正确的依存关系,并且顺序正确

<script data-require="jquery@*" data-semver="2.0.1" src="http://code.jquery.com/jquery-2.0.1.min.js"></script>
<script data-require="[email protected]" data-semver="1.1.5" src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
<script data-require="[email protected]" data-semver="2.3.2" src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script data-require="[email protected]" data-semver="0.6.6" src="//cdnjs.cloudflare.com/ajax/libs/angular-strap/0.6.6/angular-strap.min.js"></script>

我的控制台说

Error: Unknown provider: $strap.directivesProvider <- $strap.directives <- notificationDirective
@http://code.angularjs.org/1.1.5/angular.min.js:29
c@http://code.angularjs.org/1.1.5/angular.min.js:27
@http://code.angularjs.org/1.1.5/angular.min.js:30
c@http://code.angularjs.org/1.1.5/angular.min.js:27
d@http://code.angularjs.org/1.1.5/angular.min.js:27
@http://code.angularjs.org/1.1.5/angular.min.js:37
forEach@[native code]
javascript html angularjs angularjs-directive angularjs-module
2个回答
3
投票

AngularStrap的模块依赖性在错误的位置列出。 '$strap-directives'是模块依赖性,而不是服务依赖性,因此需要在应用程序引导期间将其列出,例如:

var app = angular.module('myApp', ['$strap.directives']);

它还需要在您的指令中作为服务DI删除:

app.directive('notification', function(){
    return {
        restrict: 'E',
        replace: true,
        scope: {
            ngModel: '='
        },
        template: '<div>Test</div>'
    }
});

这也是他们在AngularStrap site上配置柱塞的方式。


1
投票

$strap.directives是一个模块。您需要将其定义为您自己的模块的依赖项:

var app = angular.module('myApp', ['$strap.directives']);

您无需将其注入指令中。因此,您的指令将仅如下所示:

app.directive('notification', function(){
  return {
    restrict: 'E',
    replace: true,
    scope: {
      ngModel: '='
    },
    template: '<div>Test</div>'
  }
});
© www.soinside.com 2019 - 2024. All rights reserved.