在dGrid中访问带有'@'对象符号的字段

时间:2013-08-23 07:33:42

标签: javascript json dgrid

我在dGrid中设置图层字段时遇到问题。

store = new Memory({data: someData});
grid = new Grid({
    store: store
});

layout = {[label: 'ID', field: '@attributes', formatter: getId]};

grid.set('columns', layout);

someData是具有以下结构的对象

someData = {
{@attributes: {
    id: someId
}},
{@attributes: {
    id: someId
}},
};

getId = function (value, rowId) {
return value.id;
};

好吧,它无法获得Id或任何东西。

我感谢任何建议。在此先感谢:)

2 个答案:

答案 0 :(得分:0)

您显然无法使用点表示法访问它。您必须使用方括号表示法。

someData['@attributes'].id

目前还不清楚getId是您创建的还是dgrid的一部分而且您无法更改它。如果是后者,则应在访问它之后但在将其发送到dgrid之前重命名@attributes属性。

someData.attributes = someData['@attributes'];
delete someData['@attributes'];
// send it off to dgrid...

答案 1 :(得分:0)

解决方案很简单,就像你们已经知道的那样,要使用@符号访问对象,你需要括号表示法。由于dGrid支持formatter,您可以通过这样做来完成任务

layout = {[
    label: 'ID', field: '@attributes', formatter: function (value) {
        return value['@attributes'].id;}
]};

这将在@attributes中显示ID值。