Ember数据:model.get(' modelName')未定义,但是model._internalModel有效

时间:2016-01-18 21:41:47

标签: ember.js model ember-data

我使用的是Ember Data 2.2.0和Ember 2.2.1。从数据存储中检索模型后,我希望将模型的类型名称作为字符串。

根据API文档,DS.Model定义了modelName属性,看起来像我想要的。但是,在使用model.modelName从商店中检索model.get('modelName')后,我发现modelfindRecord未定义。

另一方面,model._internalModel.modelName按预期返回模型的小写,虚线化名称。

这里发生了什么?

1 个答案:

答案 0 :(得分:14)

在文档中看起来有点含糊不清。 modelName示例使用可能与DS.Store#modelFor混淆的Ember.Route#modelFor并不会有帮助。

根据文档,

DS.Store#modelFor返回"特定键的模型类。由采用类型键的方法(如find,createRecord等)"使用。我理解的是它返回实际的DS.Model类,而不是实例。 _internalModel也返回DS.Model类,因此行为相同。

我认为更安全的选择是model.constructor.modelName