【发布时间】:2018-04-13 08:27:20
【问题描述】:
我是 EmberJS 的新手,正在学习教程。我在教程的一部分开始讨论创建服务并将它们注入你的控制器(我不是 100% 确定它是否是一个控制器,但我来自 AngularJS,看起来很相似)。
在我的 Ember 项目的终端中,我运行命令 ember g service authentication。我可以看到该服务是在我的应用程序的服务目录中的文件authentication.js 中创建的。但是,当我尝试将其注入我的控制器时,当我在本地提供应用程序时,我在浏览器中遇到了这个问题,
Error: Assertion Failed: Attempting to inject an unknown injection: 'service:authentication
这可能是因为我使用的 Ember 版本比教程中的版本更新,并且现在有不同的方式来注入服务?我问这个是因为这是教程中服务的语法
import ember from 'ember'
export default Ember.Service.extend({
records: []
});
这是我现在拥有的语法,在使用 ember new 构建项目时自动创建
import Service from '@ember/service';
export default Service.extend({
records: []
});
org.js "服务被注入的地方"
import Route from '@ember/routing/route';
export default Route.extend({
authentication: Ember.inject.service(),
setupController(controller) {
this._super(...arguments);
}
});
【问题讨论】:
-
您共享的代码很好,您可以更改的一件事是使用
import { inject } from "@ember/service";而不是依赖全局Ember.inject.service。
标签: ember.js service controller inject