2012-04-11 4 views
1

Учитывая следующие данные JSON:JSON дочерний объект с додзё/данных/ObjectStore

[ 
{ 
    "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" 
    } 
} 
] 

Я создаю dojox/DataGrid, но я не могу найти способ доступа к «полям» детей.

Вот 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> 

Я попытался с помощью fields.title и fields.body при определении поля, но это не сработало.

В этом примере, как мне получить доступ к «полям» детям?

ответ

0

Вам необходимо использовать метод formatter в структуре сетки, как показано ниже.

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

Помните, что вам нужно _item в проходит мимо на field, который даст вам всю строку в методе форматирования и с помощью точечной нотации, вы можете вернуть reuqired данные

Смежные вопросы