2016-11-05 3 views
1

Wenn ich Daten im Ember-Inspektor überprüfe, sehe ich mehrere Datensätze eins mit ID (int) und eins ohne ID (null).Ember-Daten createRecord erstellt mehrere Datensätze

Mit Ember 2.9.1

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

Knoten Backend

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 
    }); 
    }); 
}); 

Antwort

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

Der folgende Code funktioniert ordnungsgemäß. Dies ist eine bekannte issue in Glut Daten.

0

Ich bin überrascht, einen Beitrag in dem Datenspeicher mit einer ID aus dieser Operation zu sehen. Sie sollten zurückkehren (eine RestAdapter vorausgesetzt) ​​

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); 
    }); 
}); 

Dies wird die geschaffene Datensatz zurückzugeben, die die ID enthält, die wiederum den Speicher entsprechend aktualisieren.

Ich vermute, die Null-ID ist von der aktuellen speichern, und der Datensatz mit einer ID ist von einem vorherigen Speichern?

+1

immer noch das gleiche Problem.Nicht funktioniert.Ich denke, das ist ein bekanntes Problem https://github.com/emberjs/data/issues/4421 – zerocon

+0

Ah, interessant. In diesem Fall sollten Sie in der Lage sein, in diesem Problem zu umgehen, indem Sie this.store.createRecord ('post', {title: title}) verwenden. Save(). Then (() => { this.setProperties ({ title: ''}); this.transitionToRoute ('posts');} – JonRed

+0

Irgendwie überrascht diese Antwort nicht, obwohl sie das Modell mit der ID zurückgeben würde. Offensichtlich ist es nicht JSONAPI, aber wie gesagt, sollte arbeite mit dem RestAdapter. – JonRed