从子文件夹注入 Ember 服务

Inject Ember service from subfolder

我当前的 ember 项目结构如下:

+-- app
| services 
|   +-- service1.js
|   |   subfolder
|   |   +-- service2.js

我在服务文件夹的根目录中有一个服务 (service1.js)。我可以完美地将它注入到这样的控制器中:

    service: Ember.inject.service("service1"),

但我想在我的服务文件夹中添加一些结构。我想将服务 (service2.js) 放在子文件夹 ('subfolder') 中。

如何将其注入我的控制器。js/component.js?如果我写下:

service: Ember.inject.service("subfolder/service2") or
service: Ember.inject.service("subfolder.service2"),

这不起作用

Attempting to inject an unknown injection

如何将子文件夹中的服务注入我的 controller/component/etc?

您的代码应该可以工作。这是 working twiddle.

services/subfolder/service2.js

import Ember from 'ember';
export default Ember.Service.extend({
  name:'kumkanillam'
});

在控制器中注入服务myService:Ember.inject.service('subfolder/service2'),。您可以在 application.hbs 中使用它,例如 {{myService.name}}

而在 2021 年这些天 ember.js Glimmer/Octane:

import { inject as service } from '@ember/service';
export default class UserPlannerBasketOnlyController extends Controller {
     @service('tkc/rangemappings-tkc') rangemappings;
}