Javascript 为什么我必须加上尾巴';供应商';当我使用es6时,将其命名为服务名称
我的角度版本是1.4.8 我有一个用es-6类定义的服务Javascript 为什么我必须加上尾巴';供应商';当我使用es6时,将其命名为服务名称,javascript,angularjs,Javascript,Angularjs,我的角度版本是1.4.8 我有一个用es-6类定义的服务 class OrdersService { ... } export default angular.module('services.orders', []) .service('ordersService', OrdersService) .name; 我想把它注入另一个模块 import ordersService from 'orders.service' function routes($state
class OrdersService {
...
}
export default angular.module('services.orders', [])
.service('ordersService', OrdersService)
.name;
我想把它注入另一个模块
import ordersService from 'orders.service'
function routes($stateProvider, ordersService) {
....
}
routes.$inject = ['$stateProvider', 'ordersService'];
export default angular
.module('orders',[ordersService])
.config(routes)
但异常表示“找不到提供程序orderService”。但将尾部“提供者”添加到服务中使其工作
routes.$inject = ['$stateProvider', 'ordersServiceProvider'];
在本文中,作者没有添加,但仍在工作。
为什么我需要向服务添加“提供者”?是否有api文档声明?在角度
配置
阶段,您只能使用提供者。使用.service
(或.factory
)是创建提供者的简写。您也可以使用.provider
,但必须更明确地创建提供程序
提供者和.config
阶段用于配置应用程序中使用的服务。由于您没有进行任何配置,因此将orderService
注入.config
中不会带来任何好处
也许您可以在angular
config
阶段将其注入,您只能使用提供者。使用.service
(或.factory
)是创建提供者的简写。您也可以使用.provider
,但必须更明确地创建提供程序
提供者和.config
阶段用于配置应用程序中使用的服务。由于您没有进行任何配置,因此将orderService
注入.config
中不会带来任何好处
也许您可以将其注入到您可以使用的中,而不是手动执行此操作
在构造函数上添加特殊注释:
export default class HomeController {
/*@ngInject*/
constructor(randomNames) {
this.randomNames = randomNames;
}
}
然后将ng annotate插件添加到构建过程中,它将为您描述该注入。您可以使用它,而不是手动执行此操作
在构造函数上添加特殊注释:
export default class HomeController {
/*@ngInject*/
constructor(randomNames) {
this.randomNames = randomNames;
}
}
然后将ng annotate插件添加到构建过程中,它将为您描述注入。
函数路由($stateProvider,$ordersService)
我们不会对它们使用$
。。也许这就是导致你死亡的原因trouble@Minato谢谢,美元是个打字错误。$inject上出现异常。函数路由($stateProvider,$ordersService)
我们不使用它们。。也许这就是导致你死亡的原因trouble@Minato谢谢,美元是个打字错误。例外情况为$inject。