Ember数据:创建没有商店的模型

时间:2016-07-26 20:11:21

标签: ember.js ember-data

有没有办法在不使用DS.Model的情况下创建store.createRecord对象?

修改

也许我需要提供一些背景信息。

我正在编写一个Ember Addon,其中有一些model未通过 app / 目录进行桥接,我想为那些model编写单元测试。自动生成的单元测试使用moduleForModel帮助程序,如果model被桥接,它可以正常工作。但由于我的models没有桥接,它们不会合并到虚拟应用程序的命名空间,moduleForModel帮助器找不到model

这就是为什么我希望能够在不使用model对象的情况下创建store的原因,因为我无法在不使用{{1}的情况下找到访问store的方法帮助者。

2 个答案:

答案 0 :(得分:1)

没有。 DS.ModelEmber.Object,如果有可能,我们会使用create

const User = DS.Model.extend({
  firstName:   DS.attr('string'),
  lastName:    DS.attr('string'),
});

const foo = User.create({ firstName: 'Foo', lastName: 'Bar' });

> Uncaught EmberError { message: "You should not call `create` on a model. Instead, call `store.createRecord` with the attributes you would like to set.", ... ]

DS.Model实例按设计链接回商店(这是在推送新数据时它们如何接收更新),因此在没有该连接的情况下创建DS.Model实例是没有意义的。 Ember Data通过要求您在商店实例上调用createRecord来明确这一点。

答案 1 :(得分:0)

是的,有。您可以将普通的javascript对象(必须具有模型定义中定义的适当键)推送到商店中。就Ember而言,此类对象称为hash。这是你的guide。将hash推入商店后,请注意,创建的模型不会是newdirty。它将具有州root.loaded.saved。有关州here

的更多信息

希望我帮助过你。