Ember js 1.12.0 -创建实例失败
Ember js 1.12.0 - Failed to create instance
我试图将我的配置文件注入到所有的路由,控制器和组件中,而不是在每个文件中调用import config from '../config/environment'
。然而,我得到以下错误:
未捕获错误:创建'config:main'实例失败。很可能是一个定义不正确的类或一个无效的模块导出。
下面是我通过coffeescript渲染的代码。
// app/initializers/config.js
define('app/initializers/config', ['exports', 'app/config/environment'], function (exports, Config) {
'use strict';
var ConfigInitializer, initialize;
initialize = function (container, app) {
var config;
config = {
config: Config['default']
};
app.register('config:main', config);
app.inject('route', 'config', 'config:main');
app.inject('controller', 'config', 'config:main');
app.inject('component', 'config', 'config:main');
};
ConfigInitializer = {
name: 'config',
initialize: initialize
};
exports['default'] = ConfigInitializer;
exports.initialize = initialize;
我错过了什么?
我已经使用断点逐步完成了所有内容,并且我的环境.js文件的路径是正确的。所以我知道不是那样的。我想我忽略了一些关于依赖注入的基本问题。
代码中一切看起来都很好,除了一件事。默认情况下,Ember希望注册工厂而不是实例。因此,一旦属性被注入,它就会尝试从已注册的工厂获取实例。但在您的示例中,它不是工厂,而是实例(对象)本身。因此,您唯一要做的就是让Ember按原样使用已注册对象,而不必尝试获取实例。为此,只需将instantiate: false
添加到register
选项中:
app.register('config:main', config, {instantiate: false});
在初始化时无法实例化一个新的配置对象。尝试将您的配置对象更改为Ember。服务
import Ember from 'ember'
initialize = function(container, app) {
var config = Ember.Service.extend({
config: Config['default']
}
...
}
相关文章:
- 实例创建(JS)
- 如何在JavaScript中创建实例的实例
- 使用模型创建实例显示'不是函数'(节点使用猫鼬)
- Backbone.Model.extend不创建实例属性
- 在 ES6(量角器页面对象)中创建实例的正确方法
- 获取创建实例的父函数
- 如何显式创建实例变量
- 如何在 JavaScript 中创建实例变量
- 如何使用新构造函数为 json 中的每个节点创建实例
- 构造函数中的私有函数声明是否在每次创建实例时重新实例化
- 创建实例时覆盖的主干视图类事件
- 创建实例并传递给构造函数或在构造函数内部创建
- 在 javascript 中的类中为私有函数创建实例
- 创建实例,不带' new '操作符,参数列表可变
- Jquery -在document.ready()上创建实例后更改对象属性
- 在dojo的addOnLoad方法中创建实例没有全局作用域
- Ember js 1.12.0 -创建实例失败
- 命名textarea不要在form中创建实例
- 我们可以从jsonObject创建实例吗?
- 我应该创建实例的模块或不