Javascript Dojo 1.8使用提供的JsonRest的对象和子对象填充EnhancedGrid

Javascript Dojo 1.8使用提供的JsonRest的对象和子对象填充EnhancedGrid,javascript,dojo,dojox.grid,Javascript,Dojo,Dojox.grid,有没有办法用JSON结构中的子对象填充dojox/grid/EnhancedGrid的列? 例如,如果我有一个JSON行,它看起来像: { id: 2, name: "TestItem2", created: { date: "2013-03-28 11:59:40", timezone_type: 3, timezone: "Europe/Berlin"

有没有办法用JSON结构中的子对象填充dojox/grid/EnhancedGrid的列? 例如,如果我有一个JSON行,它看起来像:

   {
        id: 2,
        name: "TestItem2",
        created: {
             date: "2013-03-28 11:59:40",
             timezone_type: 3,
             timezone: "Europe/Berlin"
        }
   }
我想在子对象“created”中用“date”填充网格的一列。 我已经尝试过在网格的“structure”属性中将列的“field”属性设置为“created.date”,但没有成功。

在这种情况下,可以使用格式化程序:

var structure = [[
    {'name': 'Date', 'field': '_field', formatter: myFormatter }
]];
它将把整个节点从存储区传递到一个名为
myFormatter
的函数中,您可以从该函数中传递相关条目,如:

function myFormatter(node, rowIdx){
    return node.created.date;
};

另请参见citress在此处的回答:

这是一种邪恶和蹩脚的行为,但更改对象结构可能会帮助您将其放入网格。听起来你只是想要约会,所以你可以这样做:

var o = {
    id: 2,
    name: "TestItem2",
    created: {
         date: "2013-03-28 11:59:40",
         timezone_type: 3,
         timezone: "Europe/Berlin"
    }
};

o.created = o.created.date;
现在该对象如下所示:

created: "2013-03-28 11:59:40"
id: 2
name: "TestItem2"
以下是来自控制台的示例:


@Seijikun让我知道这是否对您有帮助。我想到了这一点,但不幸的是这是不可能的,因为Rest API是不可更改的。这对日期有效,但实际数据模型包含更多的子对象,其中我需要的属性不止一个。更改模型clientside需要遍历所有项,这将非常糟糕。我将把答案留在这里,以防它对其他人有所帮助。