我试图创建一个"注意"用createRecord记录。当我将它传递给我的动作时,它会正确地创建记录,但只会创建" body"我传入的属性,而不是id或时间戳。但是,我刷新后会创建这些属性。我的问题是,我希望它一旦我点击我的"创建"按钮,所以我可以按降序排序,并且无需每次刷新都能删除注释。
我的控制器:
import Ember from "ember";
export default Ember.ArrayController.extend({
actions: {
newNote: function() {
var body = this.get('noteCopy');
var note = this.store.createRecord('note', { body: body });
this.set('noteCopy', '');
note.save();
},
deleteNote: function(id) {
this.store.find('note', id).then(function(note) {
note.deleteRecord();
note.save();
});
}
}
});
我的模板:
{{textarea placeholder="Add a note!" value=noteCopy class='newNoteArea'
autofocus=true}}<br>
<button class='createNoteButton'{{action 'newNote'}} style='font-size:2em'>Save Note</button><br><br>
<br>
{{#each note in model}}
<div class="noteShow">
{{note.body}}<br>
<img src="assets/erase.gif" alt="" class='deleteNoteButton'{{action 'deleteNote' note.id}} style='width:4em'/>
</div>
{{/each}}
{{outlet}}
一旦注释创建了时间戳属性,我的服务器就会正确地进行排序......但是因为我得到了
id:null,body:&#34;某个body&#34;,created_at:undefined,updated_at:undefined
每当我创建一个新笔记时,它都不会做任何它应该做的事情,直到我刷新。在我看来,这可能是promises的一个问题,但在尝试实现一些.success()和.then()行之后,我感觉这并非如此。
如果这是一个新手问题,请原谅我,但我对Ember来说还是一个新手。任何输入都表示赞赏。谢谢!
答案 0 :(得分:1)
{POST}给您的API服务器提供了id
。创建成功后,您可以检索id
。
var newJob = jobController.store.createRecord('job', {
status: 'requested',
message: '',
});
console.log(newJob);
newJob.save().then(() => {
console.log('Job ID ', newJob.id, ' created.');
}.bind(jobController), (err) => {
console.log(err.message);
}.bind(jobController)
);