2016-12-22 2 views
0

Я учусь уголек от нуля, и я наткнулся на что-то я не совсем понимаю:Могу ли я создатьRecord() без использования save()?

const newNote = this.store.createRecord('note', { 
    content: 'once upon a time...', 
}); 

newNote.save().then(this._redirectToNewNote.bind(this)); 

Это результат createRecord в базе данных перед сохранением, или это как фиктивный объект? Можно ли использовать createRecord без сохранения?

ответ

1

Да. вы можете использовать его без сохранения, помните, что он будет удален из хранилища при обновлении страницы.

От Ember руководства

createRecord используется для создания новых записей на стороне клиента. Это вернет новую запись в состоянии created.uncommitted. Чтобы сохранить эту запись на бэкэнд, вам необходимо вызвать record.save().

+0

Могу ли я подделывать его? поэтому я могу передать фиктивный объект, не сохранив его? – Leo

+1

Вместо faking save вы можете попробовать [push] (http://emberjs.com/api/data/classes/DS.Store.html#method_push) или [pushPayload] (http://emberjs.com/api/ data/classes/DS.Store.html # method_pushPayload) в хранилище и использовать [peekRecord] (http://emberjs.com/api/data/classes/DS.Store.html#method_peekRecord), чтобы получить его, и вы можете использовать его , – kumkanillam

+1

Вы можете сослаться на эту [демонстрационную версию ember-twiddle] (https://ember-twiddle.com/fb99f18cd3b4d3e2a4c7?openFiles=application.route.js%2C). это можно найти в [push] (http://emberjs.com/api/data/classes/DS.Store.html#method_push) – kumkanillam