带有dojo/data/ObjectStore的JSON子对象

带有dojo/data/ObjectStore的JSON子对象,json,dojo,Json,Dojo,给定以下JSON数据: [ { "pk": 2, "model": "corkboard.announcement", "fields": { "body": "Test announcement 2 body.", "date": "2012-04-10T00:59:12Z", "title": "Test Announcement 2" } }, { "pk": 1, "model":

给定以下JSON数据:

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

var公告存储、数据存储、网格;
require([“dojo/store/JsonRest”、“dojo/store/Memory”、“dojo/store/Cache”、“dojox/grid/DataGrid”、“dojo/data/ObjectStore”、“dojo/query”、“dojo/domReady!”),
函数(JsonRest、内存、缓存、数据网格、对象存储、查询){
announcementStore=Cache(JsonRest({target://corkboard/announcements/“}),Memory());
网格=新的数据网格({
store:dataStore=ObjectStore({ObjectStore:announcementStore}),
结构:[
{名称:“标题”,字段:“标题”,宽度:“200px”},
{name:“Body”,field:“Body”,width:“200px”,可编辑:true}
]
},“目标节点id”);
grid.startup();
查询(#保存”).onclick(函数(){
dataStore.save();
});
});
在定义字段时,我尝试使用fields.title和fields.body,但没有成功


在本例中,如何访问“fields”子项?

您需要使用网格结构中的
格式化程序
方法,如下所示

{name:"Title",field:"_item",widht:"200px",formatter:function(item){return item.fields.title}}
请记住,您需要在
字段中传递
\u项
,这将在格式化程序方法中为您提供整行,使用点表示法,您可以返回重新获取的数据