2016-04-21 9 views
1

Ich verwende glut-Daten, ich meine API-AufrufInhalt leer von Versprechen?

this.store.findAll('environment').then(function(values){ 
    //1 
},function(reason){ 
    //rejected 
}); 

Und mein Code geht in die // 1, Problem ist ich dieses Objekt zu erhalten, die ziemlich ungültig zu sein scheint.

enter image description here


Hier ist, was meine api zurückschickt.

{ 
    "data": { 
    "environments": [ 
     { 
     "id": 1, 
     "localePath": "C:\\XML_DEPOT", 
     "name": "Acceptation 1", 
     "remotePath": "D:\\XML_DEPOT", 
     "databaseServerName": "blabla", 
     "databaseName": "blabla", 
     "port": 60903 
     }, 
     { 
     "id": 2, 
     "localePath": "bob", 
     "name": "Acceptation 2", 
     "remotePath": "bob", 
     "databaseServerName": "blabla\\blabla", 
     "databaseName": "blabla", 
     "port": 60904 
     } 
    ] 
    } 
} 

auf den zweiten Versuch habe ich es gab und immer noch nicht gefallen.

{ 
    "data": [ 
    { 
     "id": 1, 
     "localePath": "C:\\XML_DEPOT", 
     "name": "Acceptation 1", 
     "remotePath": "D:\\XML_DEPOT", 
     "databaseServerName": "W050A01SQL1", 
     "databaseName": "MAMROT01P1_MSCRM", 
     "port": 60903, 
     "type": "environments" 
    }, 
    { 
     "id": 2, 
     "localePath": "bob", 
     "name": "Acceptation 2", 
     "remotePath": "bob", 
     "databaseServerName": "W050A01SQL1\\W050A01SQL1B02", 
     "databaseName": "MAMROT01P1_MSCRM", 
     "port": 60904, 
     "type": "environments" 
    } 
    ] 
} 

das ist mein Modell Erklärung

//environment.js 
export default Model.extend({ 
    id: DS.attr('number'), 
    localePath: DS.attr('string'), 
    name: DS.attr('string'), 
    remotePath: DS.attr('string'), 
    databaseServerName: DS.attr('string'), 
    databaseName: DS.attr('string'), 
    port: DS.attr('number') 
}); 

Thank you!

+0

Antwort: ändern Sie "Daten" in "Umgebungen" und entfernen Sie ID im Modell –

+0

Ja, "id" wird angenommen. Froh, dass du es herausgefunden hast! –

Antwort

0

Je nachdem, welche Version von Ember Sie verwenden und vorausgesetzt, Ihr Modell ist gut eingerichtet (vielleicht könnten Sie das auflisten, damit wir das ausschließen können), möchten Sie, dass der Server Ihnen Daten zurücksendet in einem von zwei Formaten Ember Daten glücklich zu machen:

  1. Ember 1.13 (oder frühere Version) mit seinem Standard DS.RESTAdapter (docs)

    { 
        "environments": [ 
        { 
         "id": 1, 
         "localePath": "C:\\XML_DEPOT", 
         "name": "Acceptation 1", 
         "remotePath": "D:\\XML_DEPOT", 
         "databaseServerName": "blabla", 
         "databaseName": "blabla", 
         "port": 60903 
        }, 
        { 
         "id": 2, 
         "localePath": "bob", 
         "name": "Acceptation 2", 
         "remotePath": "bob", 
         "databaseServerName": "blabla\\blabla", 
         "databaseName": "blabla", 
         "port": 60904 
        } 
        ] 
    } 
    
  2. Ember 2.0+ mit seinem Standard DS.JSONAPIAdapter (docs)

    { 
        "data": [ 
        { 
         "type": "environments", 
         "id": 1, 
         "attributes": { 
         "localePath": "C:\\XML_DEPOT", 
         "name": "Acceptation 1", 
         "remotePath": "D:\\XML_DEPOT", 
         "databaseServerName": "blabla", 
         "databaseName": "blabla", 
         "port": 60903 
         } 
        }, 
        { 
         "type": "environments", 
         "id": 2, 
         "attributes": { 
         "localePath": "bob", 
         "name": "Acceptation 2", 
         "remotePath": "bob", 
         "databaseServerName": "blabla\\blabla", 
         "databaseName": "blabla", 
         "port": 60904 
         } 
        } 
        ] 
    } 
    

Und Ihr Modell kann das ID-Attribut fallen, wie Sie entdeckt haben, da angenommen hat und das hinzugefügt für Sie von Ember.

//environment.js 
export default Model.extend({ 
    localePath: DS.attr('string'), 
    name: DS.attr('string'), 
    remotePath: DS.attr('string'), 
    databaseServerName: DS.attr('string'), 
    databaseName: DS.attr('string'), 
    port: DS.attr('number') 
}); 

Hoffe, dass Sie bekommen, was Sie suchen.

+0

es ist vielen Dank! –

+0

Ich bekomme es nicht von diesem Dokument http://emberjs.com/api/data/classes/DS.RESTAdapter.html wenn ich den RESTAdapter benutze, den ich die Weise tue, die ich sende mein Json sollte in Ordnung sein? Dies scheint nicht von einer alten Doc-Version. –

+0

@ Dr.DenisMcCracleJizz Ich denke, Sie müssen immer noch die "Data": {} 'Wrapper, wenn Sie den RESTAdapter verwenden. Es sieht so aus, als suche es immer noch nach dem Ember 1.13 Style JSON. Lass es mich wissen, wenn das funktioniert. –