繁体   English   中英

AngularJS参数'fn'不是函数,未定义

[英]AngularJS Argument 'fn' is not a function, got undefined

我在AngularJS 1.6上遇到问题,错误消息说:

错误:[ng:areq]参数'fn'不是函数,未定义

我知道这与我的testService有关,请帮助查找问题

./app.js

import angular from 'angular';
import uiRouter from 'angular-ui-router';
import Components from './components/components';
import { TestComponent } from './test/test.component';
import { ApiConstant } from './constants';
import { TestService } from './services';

angular.module('myApp', [
    uiRouter,
    Components
  ])
  .component('testPage', TestComponent)
  .service('TestService', TestService)
  .constant('ApiConstant', ApiConstant)
  .config(($stateProvider) => {
    'ngInject';
    $stateProvider
      .state('home', {
        url: '',
        template: '<test-page></test-page>'
      });
  });

./services/test.service.js

export const TestService = (ApiConstant) => {
  'ngInject';

  this.test = function() {
    console.log(ApiConstant);
    return ApiConstant;
  };
};

./services/index.js

export * from './test.service';

./constants/api.js

export const ApiConstant = {
  url: 'test'
};

./constants/index.js

export * from './api.constant';

./components/test.component.js

import template from './test.component.html';
import controller from './test.controller';

export const TestComponent = {
  template,
  controller
};

./components/test.controller.js

export default function TestController($scope, ApiConstant, TestService) {
  'ngInject';
  console.log(ApiConstant.url);
  console.log(TestService.test());
}

因此,ApiConstant可以正常工作,但是TestService会生成错误,当我从控制器中删除TestService时它可以正常工作,那是什么呢?

模块依赖项应为字符串:

错误

 angular.module('myApp', [ uiRouter, Components ]) 

应该:

angular.module('myApp', [
    'uiRouter',
    'Components'
  ])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM