使用Ember-Cli,我正在尝试添加一个寄存器和一个适配器,然后将其注入控制器.我不明白我应该将哪些值传递给任何一个函数,或者为什么它们以这种格式传递.
(以下由emberjs网页提供):
App.register('network:main', App.NetworkAdapter);
App.inject('controller', 'network', 'network:main');
Run Code Online (Sandbox Code Playgroud)
具体来说,我不确定这种"类型:名称"格式是什么,也不了解注入值如何与寄存器函数中的内容相关.
另外,是否有人知道以下错误对application.inject函数的意义?
"处理路由时出错:index无法创建'qservice:main'的实例.很可能是一个不正确定义的类或无效的模块导出."
码:
export default {
name: 'qservice',
initialize: function(container, application){
application.register("qservice:main", "qservice", {singleton: true});
application.inject("controller",'qservice',"qservice:main");
//application.inject("route",'qservice','adapter:main');
}
};
Run Code Online (Sandbox Code Playgroud)
寄存器函数的第二个参数应该是工厂(如果instantiate设置为false,则为实例).工厂是你可以调用的东西create,它将返回一个实例.Singleton默认为true,因此无需指定它.
var qservice = Em.Object.extend();
application.register("qservice:main", qservice);
var qserviceInstance = Em.Object.create();
application.register("qservice:main", qserviceInstance, {instantiate:false});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1133 次 |
| 最近记录: |