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