2016-07-26 104 views
4

有没有办法在不使用store.createRecord的情况下创建对象DS.ModelEmber数据:在没有商店的情况下创建模型

编辑

也许我需要给一些背景。

我写灰烬插件,有没有通过应用程序/目录桥接几model,我想写那些model单元测试。自动生成的单元测试使用moduleForModel帮助程序,如果桥接了model,它可以正常工作。但由于我的models未桥接,因此不会合并到虚拟应用程序的名称空间,moduleForModel帮助程序找不到model

这就是为什么我希望能够在不使用store对象创建model因为我无法一种方式来访问找出该store不使用moduleForModel帮手。

回答

0

是的,有。您可以将您的普通JavaScript对象(必须具有您的模型定义中定义的相应键)推送到商店中。就Ember而言,这样的对象被称为hash。这里是你的guide。在将hash推入商店后,请小心,所创建的型号不会是newdirty。它将有状态root.loaded.saved。更多关于状态here

希望我帮了你。

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来明确这一点。

+0

这是针对单元测试的上下文。我为我的问题添加了更多的上下文 – lordofthefobs

相关问题