2016-07-26 153 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

相關問題