Ember.js 初始化时将控制器注入控制器不再工作(金丝雀)
我刚刚升级到最新的金丝雀版本的余烬,并注意到我的初始化注入currentUser控制器到所有控制器不再工作 这是代码Ember.js 初始化时将控制器注入控制器不再工作(金丝雀),ember.js,Ember.js,我刚刚升级到最新的金丝雀版本的余烬,并注意到我的初始化注入currentUser控制器到所有控制器不再工作 这是代码 Ember.Application.initializer({ name: "fetchUsers", after: "store", initialize: function(container, application) { var store, controller; application.deferReadiness(); s
Ember.Application.initializer({
name: "fetchUsers",
after: "store",
initialize: function(container, application) {
var store, controller;
application.deferReadiness();
store = container.lookup('store:main');
controller = container.lookup('controller:currentUser');
return store.find('user').then( function(users) {
var currentUser;
currentUser = users.findBy('isCurrent', true);
controller.set('content', currentUser);
application.inject('controller', 'currentUser', 'controller:currentUser');
application.advanceReadiness();
});
}
});
这在发行版和测试版分支中运行良好,但在canary中,我得到以下错误
Error: Cannot inject a `controller:current-user` on other controller(s). Register the `controller:current-user` as a different type and perform the typeInjection.
我该如何着手解决这个问题?我希望currentUser成为ObjectController,这可能吗 好的,这是我当前的初始值设定项。我实际上只是将currentUser ObjectController更改为ObjectProxy。我现在唯一的问题是在哪里存储CurrentUserObjectProxy文件。我倾向于模型
Ember.Application.initializer({
name: "fetchUsers",
after: "store",
initialize: function(container, application) {
var store, user, proxy;
application.deferReadiness();
store = container.lookup('store:main');
proxy = App.CurrentUserObjectProxy.extend();
container.register('user:current', proxy, {singleton: true});
proxy = container.lookup('user:current');
store.find('user').then( function(users) {
user = users.findBy('isCurrent', true);
proxy.set('content', user);
application.inject('controller', 'currentUser', 'user:current');
application.advanceReadiness();
});
}
});
我希望这对某人有帮助 为什么您希望它成为控制器?注入控制器似乎已被弃用/破坏,因此必须在控制器中声明
需要
属性才能获得所需的实例。。。您是否考虑过在GITHUB上打开一个问题?亚伦,HORM,提出了一个有效的观点,有什么特殊的原因,你不能使用一个烬对象/数组,或者ObjtPosith/ArayPosith.Kin PiN2K,使用一个对象代理工作。谢谢