我在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或任何东西。
我感谢任何建议。在此先感谢:)
答案 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值。