2013-03-29 3 views
1

Есть ли способ заполнить столбец dojox/grid/EnhancedGrid с SubObjects в структуре JSON? Например, если у меня есть JSON-строку, которая выглядит как:Dojo 1.8 заполнить EnhancedGrid объектами и SubObjects предоставленного JsonRest

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

, и я хочу, чтобы заполнить столбец Энергосистемы с «дата» в подобъекте «созданной». Я уже пробовал что-то вроде установки свойства поля «Поле» столбца «created.date» в «структуре структуры» Grid, но это не выполняло работу.

ответ

2

Apparently вы можете использовать форматчик в этом случае:

var structure = [[ 
    {'name': 'Date', 'field': '_field', formatter: myFormatter } 
]]; 

, который будет проходить весь узел из магазина в функцию под названием myFormatter, из которого можно пройти соответствующую запись, например:

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

Смотрите также citress' ответ здесь: Dojo grid nested json

+0

Это сделало эту работу, спасибо! – Seijikun

0

Это своего рода зло и хромой, но, возможно, изменяя структура объекта поможет вам получить его в сетке. Похоже, вы просто хотите дату, так что вы можете сделать это:

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" 

Вот пример из консоли:

Here's a sample from the console

+0

@Seijikun дайте мне знать, если это вам поможет или нет. – Jess

+0

Я думал об этом, но, к сожалению, это невозможно, потому что API Rest не может быть изменен. Это будет работать на дату, но реальная модель данных содержит еще несколько SubObjects, где мне нужно больше одного свойства. Для изменения клиентской модели модели потребуется перебрать все элементы, и это будет действительно злой. – Seijikun

+0

Я оставлю ответ здесь, если это поможет кому-то другому. – Jess

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

  • Нет связанных вопросов^_^