Angularjs 未知提供程序:服务提供程序<;-服务

Angularjs 未知提供程序:服务提供程序<;-服务,angularjs,Angularjs,我对angular很陌生,我已经尝试解决这个问题有一段时间了,但我似乎没有取得任何进展。 我以前在选择器组件上调用过服务,它工作得很好,但现在我有2个选择,第二个是相同的列表,但根据第一个选择的内容进行过滤,因此我将其移动到一个过滤器组件,该组件包含两个选择,不再工作 旧事物选择器.controller.js export default function ThingSelectorController($scope, ThingService) { 'ngInject'; ...

我对angular很陌生,我已经尝试解决这个问题有一段时间了,但我似乎没有取得任何进展。 我以前在选择器组件上调用过服务,它工作得很好,但现在我有2个选择,第二个是相同的列表,但根据第一个选择的内容进行过滤,因此我将其移动到一个过滤器组件,该组件包含两个选择,不再工作

旧事物选择器.controller.js

export default function ThingSelectorController($scope, ThingService) {
  'ngInject';

  ...

  this.getThings = () => ThingService.find().then((things) => {        
    return things;
  });
}
export default function FilterController($scope, $state, ThingService) {
  'ngInject';
  this.things = [];
  ...

  this.$onInit = () => {
    ThingService.getThings().then((things) => {
       this.things = things;

    });      
  }
import template from './filter.component.html';
import controller from './filter.controller';

export const FilterComponent = {
  template,
  controller
};

export default FilterComponent;
imports...

export default angular.module('app.components', [])
.component('thingSelector',  ThingSelectorComponent)
.component('thingWrapper',   ThingWrapperComponent)
.component('filterBox',      FilterComponent)  
...
.name;
import { SomethingElseService, ThingService } from './services';

angular.module('myApp', [
  uiRouter,
  uiSelect,
  ngSanitize,
  Components
])
.component('homePage',      HomeComponent)
.component('somethingElsePage', SomethingElseListComponent)

.service('ThingsService',    ThingsService)
.service('SomethingElseService', SomethingElseService)
...

新建filter.controller.js

export default function ThingSelectorController($scope, ThingService) {
  'ngInject';

  ...

  this.getThings = () => ThingService.find().then((things) => {        
    return things;
  });
}
export default function FilterController($scope, $state, ThingService) {
  'ngInject';
  this.things = [];
  ...

  this.$onInit = () => {
    ThingService.getThings().then((things) => {
       this.things = things;

    });      
  }
import template from './filter.component.html';
import controller from './filter.controller';

export const FilterComponent = {
  template,
  controller
};

export default FilterComponent;
imports...

export default angular.module('app.components', [])
.component('thingSelector',  ThingSelectorComponent)
.component('thingWrapper',   ThingWrapperComponent)
.component('filterBox',      FilterComponent)  
...
.name;
import { SomethingElseService, ThingService } from './services';

angular.module('myApp', [
  uiRouter,
  uiSelect,
  ngSanitize,
  Components
])
.component('homePage',      HomeComponent)
.component('somethingElsePage', SomethingElseListComponent)

.service('ThingsService',    ThingsService)
.service('SomethingElseService', SomethingElseService)
...

filter.component.js

export default function ThingSelectorController($scope, ThingService) {
  'ngInject';

  ...

  this.getThings = () => ThingService.find().then((things) => {        
    return things;
  });
}
export default function FilterController($scope, $state, ThingService) {
  'ngInject';
  this.things = [];
  ...

  this.$onInit = () => {
    ThingService.getThings().then((things) => {
       this.things = things;

    });      
  }
import template from './filter.component.html';
import controller from './filter.controller';

export const FilterComponent = {
  template,
  controller
};

export default FilterComponent;
imports...

export default angular.module('app.components', [])
.component('thingSelector',  ThingSelectorComponent)
.component('thingWrapper',   ThingWrapperComponent)
.component('filterBox',      FilterComponent)  
...
.name;
import { SomethingElseService, ThingService } from './services';

angular.module('myApp', [
  uiRouter,
  uiSelect,
  ngSanitize,
  Components
])
.component('homePage',      HomeComponent)
.component('somethingElsePage', SomethingElseListComponent)

.service('ThingsService',    ThingsService)
.service('SomethingElseService', SomethingElseService)
...

component.js

export default function ThingSelectorController($scope, ThingService) {
  'ngInject';

  ...

  this.getThings = () => ThingService.find().then((things) => {        
    return things;
  });
}
export default function FilterController($scope, $state, ThingService) {
  'ngInject';
  this.things = [];
  ...

  this.$onInit = () => {
    ThingService.getThings().then((things) => {
       this.things = things;

    });      
  }
import template from './filter.component.html';
import controller from './filter.controller';

export const FilterComponent = {
  template,
  controller
};

export default FilterComponent;
imports...

export default angular.module('app.components', [])
.component('thingSelector',  ThingSelectorComponent)
.component('thingWrapper',   ThingWrapperComponent)
.component('filterBox',      FilterComponent)  
...
.name;
import { SomethingElseService, ThingService } from './services';

angular.module('myApp', [
  uiRouter,
  uiSelect,
  ngSanitize,
  Components
])
.component('homePage',      HomeComponent)
.component('somethingElsePage', SomethingElseListComponent)

.service('ThingsService',    ThingsService)
.service('SomethingElseService', SomethingElseService)
...

apps.js

export default function ThingSelectorController($scope, ThingService) {
  'ngInject';

  ...

  this.getThings = () => ThingService.find().then((things) => {        
    return things;
  });
}
export default function FilterController($scope, $state, ThingService) {
  'ngInject';
  this.things = [];
  ...

  this.$onInit = () => {
    ThingService.getThings().then((things) => {
       this.things = things;

    });      
  }
import template from './filter.component.html';
import controller from './filter.controller';

export const FilterComponent = {
  template,
  controller
};

export default FilterComponent;
imports...

export default angular.module('app.components', [])
.component('thingSelector',  ThingSelectorComponent)
.component('thingWrapper',   ThingWrapperComponent)
.component('filterBox',      FilterComponent)  
...
.name;
import { SomethingElseService, ThingService } from './services';

angular.module('myApp', [
  uiRouter,
  uiSelect,
  ngSanitize,
  Components
])
.component('homePage',      HomeComponent)
.component('somethingElsePage', SomethingElseListComponent)

.service('ThingsService',    ThingsService)
.service('SomethingElseService', SomethingElseService)
...

错误

angular.js:13708 Error: [$injector:unpr] Unknown provider: ThingServiceProvider <- ThingService http://errors.angularjs.org/1.5.7/$injector/unpr?p0=ThingServiceProvider%20%3C-%20ThingService
    at http://localhost:3000/app.js:7969:13
    at http://localhost:3000/app.js:12403:20
    at Object.getService [as get] (http://localhost:3000/app.js:12556:40)
    at http://localhost:3000/app.js:12408:46
    at getService (http://localhost:3000/app.js:12556:40)
    at injectionArgs (http://localhost:3000/app.js:12580:59)
    at Object.invoke (http://localhost:3000/app.js:12602:19)
    at $controllerInit (http://localhost:3000/app.js:18135:35)
    at nodeLinkFn (http://localhost:3000/app.js:17048:35)
    at compositeLinkFn (http://localhost:3000/app.js:16411:14) <ui-view class="ng-scope">

angular.js:13708错误:[$injector:unpr]未知提供程序:ThingServiceProvider您的
ThingSelector控制器如何工作正常?您的服务名为ThingsService,但您正在使用ThingService。感谢您指出,当我更改实际代码中的名称时,这是一个拼写错误,不允许共享。现在它被编辑了。事实上这就是问题所在,我在app.js中称它为“ThingsService”,并在我的控制器中使用“ThingService”,谢谢你的帮助。不客气!很高兴听到你已经挺过来了。:-)为什么您的
东西选择器或控制器
工作正常?您的服务名为ThingsService,但您正在使用ThingService。感谢您指出,当我更改实际代码中的名称时,这是一个拼写错误,不允许共享。现在它被编辑了。事实上这就是问题所在,我在app.js中称它为“ThingsService”,并在我的控制器中使用“ThingService”,谢谢你的帮助。不客气!很高兴听到你已经挺过来了。:-)