2012-04-11 8 views
1

folgenden JSON-Daten Gegeben:JSON Kind-Objekt mit Dojo/data/Objektspeicher

[ 
{ 
    "pk": 2, 
    "model": "corkboard.announcement", 
    "fields": { 
     "body": "Test announcement 2 body.", 
     "date": "2012-04-10T00:59:12Z", 
     "title": "Test Announcement 2" 
    } 
}, 
{ 
    "pk": 1, 
    "model": "corkboard.announcement", 
    "fields": { 
     "body": "Test Announcement 1 body.", 
     "date": "2012-04-10T00:58:56Z", 
     "title": "Test Announcement 1" 
    } 
} 
] 

Ich bin ein Dojox/Datagrid zu schaffen, aber ich kann nicht einen Weg zu finden, scheinen „Felder“ Kinder zugreifen. Hier

ist die javascript:

<script> 
     var announcementStore, dataStore, grid; 
     require(["dojo/store/JsonRest", "dojo/store/Memory", "dojo/store/Cache", "dojox/grid/DataGrid", "dojo/data/ObjectStore", "dojo/query", "dojo/domReady!"], 
      function(JsonRest, Memory, Cache, DataGrid, ObjectStore, query){ 
      announcementStore = Cache(JsonRest({target:"/corkboard/announcements/"}), Memory()); 
      grid = new DataGrid({ 
       store: dataStore = ObjectStore({objectStore: announcementStore}), 
       structure: [ 
        {name:"Title", field:"title", width: "200px"}, 
        {name:"Body", field:"body", width: "200px", editable: true} 
       ] 
      }, "target-node-id"); 
      grid.startup(); 
      query("#save").onclick(function(){ 
       dataStore.save(); 
      }); 
     }); 
</script> 

ich versuchte, mit fields.title und fields.body wenn das Feld zu definieren, aber das hat nicht funktioniert.

In diesem Beispiel würde ich auf "Felder" Kinder zugreifen?

Antwort

0

Sie müssen die formatter Methode in der Struktur des Gitters wie unten verwenden.

{name:"Title",field:"_item",widht:"200px",formatter:function(item){return item.fields.title}} 

Denken Sie daran, Sie müssen _item im field passs, die Sie ganze Zeile in der Formatierungsverfahren geben und Punktnotation verwenden, können Sie die reuqired Daten zurückgeben