Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用ES6将服务注入AngularJS中的指令_Javascript_Angularjs_Service_Components_Directive - Fatal编程技术网

Javascript 如何使用ES6将服务注入AngularJS中的指令

Javascript 如何使用ES6将服务注入AngularJS中的指令,javascript,angularjs,service,components,directive,Javascript,Angularjs,Service,Components,Directive,以下是我的指令索引: 'use strict'; import SignupService from './core/services/signup.service'; import FooterDirective from './components/footer/footer.directive'; import MenuDirective from './components/menu/menu.directive'; export default angular.module('i

以下是我的指令索引:

'use strict';

import SignupService from './core/services/signup.service';

import FooterDirective from './components/footer/footer.directive';
import MenuDirective from './components/menu/menu.directive';

export default angular.module('index.components', [])
    .directive('footer', FooterDirective)
    .directive('menu', [MenuDirective, function(SignupService) {}]);
和指令:

import tmpl from './menu.tpl.html';

class Menu {
    constructor($scope) {
        this.scope = $scope;
        this.restrict = 'AC';
        this.transclude = true;
        this.replace = true;
        this.templateUrl = tmpl;
        this.scope = {
            ngSrc: "@",
        };
    }

    link(scope, elem, attrs) {

        console.log(scope.SignupService);

        scope.logoutCall = () => {
            this.SignupService.logoutSubmit();
        }
    }
}
function factory() {
    "ngInject";

    return new Menu(...arguments);
}

export default factory;

我需要从菜单指令访问
注册服务
,但我有此错误-
不正确的注入令牌!服务名称应为字符串,函数为factory()
。如何以及什么是向指令注入服务的最佳实践。您的依赖注入似乎是错误的

而不是

.directive('menu', [MenuDirective, function(SignupService) {}]);
应该有

.directive('menu', ['SignupService', function(SignupService) {}]);

菜单指令的声明在哪里?看看这个。这似乎与你的问题相似