Ember createRecord没有创建id

时间:2015-04-14 13:20:45

标签: ember.js ember-data

我试图创建一个"注意"用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来说还是一个新手。任何输入都表示赞赏。谢谢!

1 个答案:

答案 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)
);