gpt4 book ai didi

ember.js - 在 ember-cli 中使用初始化程序注入(inject)函数

转载 作者:行者123 更新时间:2023-12-04 22:31:06 25 4
gpt4 key购买 nike

我有一个基于 Ember-cli 构建的应用程序。我正在尝试将一种方法注入(inject)所有路由、 Controller 和 View 。我知道我可以使用 app/utils目录并将方法的模块导入到调用它的所有文件中,但我希望该方法自动可用。因此,我选择使用初始化程序注入(inject)该方法。

初始化程序如下所示:

export default {
name: 'injectMethod',

initialize: function(container, app) {
var someFunction = function(message) {

};

app.register('function:main', someFunction);

Em.A(['route', 'controller', 'view']).forEach(function(place) {
app.inject(place, 'someFunction', 'function:main');
});
}
};

这会导致以下错误消息: Uncaught TypeError: undefined is not a function .删除 app.inject() 后错误消失线。

初始化程序在 ember-cli 中的处理方式是否不同和/或上述代码中的某些内容不正确?或者它们是比使用初始化器更好的方法来实现我的目标吗?

最佳答案

Ember 希望您注册一个工厂,它可以使用 create 创建实例方法。如果你传入一个实例(或只是一个方法),你需要告诉 Ember 不要尝试实例化它,而只使用传入的实例。

export default {
name: 'injectMethod',

initialize: function(container, app) {
var someFunction = function(message) {

};

app.register('function:main', someFunction, {instantiate: false});

Em.A(['route', 'controller', 'view']).forEach(function(place) {
app.inject(place, 'someFunction', 'function:main');
});
}
};

示例: http://emberjs.jsbin.com/xaboliwu/1/edit

关于ember.js - 在 ember-cli 中使用初始化程序注入(inject)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24856958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com