这个问题与以下内容相同:
使用 Ember 数据存储从另一个命名空间注册模型
但是那里的命名有点混乱。尝试此操作时,我似乎也遇到了 ember-data@1.0.0-beta.15 中的错误。
您需要在模块初始化程序中做的是将模型注册到您的应用程序。
import Ember from 'ember';
import MyModel from my-module/models/my-model';
export default {
name: 'my-module-models',
initialize: function(container, application) {
//one of these calls for each model you need to register
application.register('model:myModule.myModel',MyModel);
}
};
现在根据我使用 Ember 和 Ember-Data 的经验,这应该是这样工作的。但是在我使用 ember-data@1.0.0-beta.15 的设置中,在创建后确定模型“密钥”似乎存在问题。模型实例创建良好,但您在尝试保存模型时会遇到错误。
我找到了一个快速的解决方法,但它是一个 hack,我需要进一步调查我是否错过了一个步骤或者它是一个错误。解决方法涉及设置类的“typeKey”,导致:
import MyModel from my-module/models/my-model';
export default {
name: 'my-module-models',
initialize: function(container, application) {
//one of these calls for each model you need to register
application.register('model:myModule.myModel',MyModelreopenClass({typeKey:'myModule.myModel'}));
}
};
最后,还有另一种方法。在 ember-cli 中创建模块时,您拥有 app 文件夹,该文件夹将使用您的模块与应用程序合并。您可以将模型的默认扩展放在 app 文件夹中。