从子文件夹中注入Ember服务

时间:2017-07-19 11:39:52

标签: ember.js ember-cli

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

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

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

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

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

如何将此注入我的controller.js / component.js?如果我写下来:

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

这不起作用

  

尝试注射未知注射剂

如何将服务从子文件夹注入我的控制器/组件/等?

2 个答案:

答案 0 :(得分:2)

您的代码应该有效。这是working twiddle

服务/子文件夹/ service2.js

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

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

答案 1 :(得分:0)

在 2021 年的这些日子里,ember.js Glimmer/Octane:

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