2016-11-05 9 views
1

ember inspectorのDataを調べると、id(int)とid(null)のない複数のレコードが表示されます。残り火2.9.1EmberデータcreateRecordは複数のレコードを作成します

save: function(){ 
    var title = this.get('title'); 
    this.store.createRecord('post',{ title:title }).save(); 
    this.setProperties({ title:''}); 
    this.transitionToRoute('posts'); 
} 

ノードバックエンド

router.post('/', function(req, res, next) { 
    post.create({ 
    title: req.body.data.attributes.title 
    }).then(function() { 
    res.set('Content-Type','application/vnd.api+json'); 
    return res.send({ 
     "msg": "post created successfully", 
     data:null 
    }); 
    }); 
}); 

答えて

0
return res.status(201).send({ 
    data:{ 
    type:'post', 
    attributes:{ 
     id:post.id, 
     name:post.title 
    } 
    } 
}); 

次のコードは正しく機能します。これは、emberデータで知られているissueです。

0

を使用して

私は、この操作のIDを持つデータストア内の投稿を見て驚きました。あなたは、これは、順番に適切ストアを更新するIDが含まれて作成したポストレコードを返します(RestAdapterを想定)

router.post('/', function(req, res, next) { 
    post.create({ 
    title: req.body.data.attributes.title 
    }).then(function (post) { 
    res.set('Content-Type','application/vnd.api+json'); 
    return res.status(201).json(post); 
    }); 
}); 

を返すべきです。

null idは現在のセーブからのもので、idのレコードは以前のセーブからのものと思われますか?

+1

まだ問題はありません。これは既知の問題だと思います。https://github.com/emberjs/data/issues/4421 – zerocon

+0

ああ、興味深いです。この場合、あなたはthis.store.createRecord( 'post'、{title:title})によってその問題でカバーされているように対処できます。save()。then(()=> { this.setProperties({ – JonRed

+0

idのモデルを返すので、この回答はうまくいきませんでした。明らかにJSONAPIではありませんが、前述のようにRestAdapterで作業します。 – JonRed

関連する問題