Ember.js Ember.MODEL\u工厂注射的具体用途是什么?
我使用的是Ember CLI,默认情况下,它似乎将Ember.js Ember.MODEL\u工厂注射的具体用途是什么?,ember.js,ember-data,ember-cli,Ember.js,Ember Data,Ember Cli,我使用的是Ember CLI,默认情况下,它似乎将Ember.MODEL\u FACTORY\u INJECTIONS=true在app.js中 我试着把这一行注释掉(并将其设置为false),然后我的应用程序似乎在某种严格的模式下运行。我得到了一堆失败的断言,因为我的一些模型关系没有显式地指定逆 这就是确切的错误: 您在(DS.Model的子类)上定义了“account”关系,但在(DS.Model的子类)上发现了多个类型可能的反向关系(DS.Model的子类)。看看http://emberj
Ember.MODEL\u FACTORY\u INJECTIONS=true代码>在app.js
中
我试着把这一行注释掉(并将其设置为false),然后我的应用程序似乎在某种严格的模式下运行。我得到了一堆失败的断言,因为我的一些模型关系没有显式地指定逆
这就是确切的错误:
您在(DS.Model的子类)上定义了“account”关系,但在(DS.Model的子类)上发现了多个类型可能的反向关系(DS.Model的子类)。看看http://emberjs.com/guides/models/defining-models/#toc_explicit-反转,了解如何显式指定反转
使用默认的Ember CLI生成的应用程序,且Ember.MODEL\u FACTORY\u INJECTIONS=true代码>,我没有得到这些错误。所以我相信这个标志会以某种方式改变核心行为
请见识见识 DS.Model
,您的模型基类,只是由Ember数据定义的另一个类。为了使它具有依赖项注入等特殊功能,Ember需要挂接到该类中,以便在实例化它时,实例引用应用程序容器。当Ember.MODEL\u FACTORY\u INJECTIONS
处于启用状态时,Ember将向类应用额外的混合,以便它可以
您可以使用获取实例的应用程序容器(或所有者)。例如,这就是如何查找应用程序或控制器实例的存储。直接调用MyModelClass.create()
时,不会设置所有者。您需要使用Ember.setOwner()
或使用现有所有者实例化它。看
然而,许多使用Ember数据的应用程序不直接实例化模型实例,也不需要这样做
您当前可以使用Ember.MODEL\u FACTORY\u INJECTIONS=true
选择使用该功能,但我相信他们正在朝着在将来将其作为默认设置的方向发展
因此,关闭该功能会导致错误,因为某些混入未包含在模型类中。感谢您的明确解释。2年后,但仍然相关!作为对你伟大安瓦尔的补充,你可以从余烬2.13开始移除这面旗帜。有关详细信息,请阅读:。
let owner = Ember.getOwner(this);
User.create(
owner.ownerInjection(),
{ username: 'rwjblue' }
)