2016-09-10 2 views
0

Ich lerne (ember-cli und ember-data = 2,7) und Probleme mit Modellen. Einige Modelle erscheinen als 'undefiniert'Nicht definierte Felder in Modell

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    revision: DS.attr('number'), 
    pub_date: DS.attr('date'), 
    contenido: DS.attr('string'), 
    contenidoHtml: DS.attr(), 
    cambios: DS.attr('string'), 
    cambiosHtml: DS.attr(), 
    notify: DS.attr('boolean'), 
    URI: DS.attr('string'), 
    firmas: DS.attr() 
}); 

Ich habe einen einfachen Serializer, wie folgen aus:

// serializers/application.js 
import DS from 'ember-data'; 

export default DS.JSONAPISerializer.extend({ 
    primaryKey: 'id' 
}); 

Dies ist die Antwort von der API:

{ 
    "data": [ 
    { 
     "attributes": { 
     "URI": "", 
     "cambios": "Commit inicial", 
     "cambiosHtml": "<p>Commit inicial</p>", 
     "contenido": "No por mucho _madrugar_, amanece más __temprano__.", 
     "contenidoHtml": "<p>No por mucho <em>madrugar</em>, amanece más <strong>temprano</strong>.</p>", 
     "firmas": { 
      ... 
      "reviso": "Zamora" 
     }, 
     "notify": false, 
     "pub_date": "2011-09-30", 
     "revision": 0 
     }, 
     "id": "7a09d345-27cc-45ef-bf58-488354c25239", 
     ... 
    ], 
    "links": { 
    ... 
    }, 
    "meta": { 
    ... 
    } 
    } 
} 

nun nach Ember Inspector, die Felder contenidoHtml, cambiosHtml und pub_date sind undefined oder leer.

Vermisse ich etwas?

Antwort

1

In Ember Daten der Konvention auf einem Modell Attributnamen

pub_date camelize ist - follwed ist das nicht so sollte es

JSONAPISerializer zu pubDate geändert werden erwartet Attribute Dasher werden In dem Dokument Nutzlast, die von Ihrem Server zurückgegeben wird:

cambiosHtml - es cambios-html
contenidoHtml ändern - es contenido-html
pub_date ändern - ändern Sie ihn auf pub-date

Wenn Sie nicht über die Kontrolle über die API, dann möchten Sie vielleicht, indem Sie das unten ember modellspezifische Serializer erstellen -cli Befehl

ember generate serializers 'model-name' 

app/Serializer/model-name.js

import DS from 'ember-data'; 

export default DS.JSONAPISerializer.extend({ 
    attrs: { 
    cambiosHtml: 'cambiosHtml', 
    contenidoHtml: 'contenidoHtml', 
    pubDate: 'pub_date' 
    } 
}); 

https://guides.emberjs.com/v2.8.0/models/customizing-serializers/#toc_attribute-names