Я новичок в Dojo, и я пытаюсь обдумать некоторые довольно базовые концепции, прежде чем мой партнер и я приступим к новому проекту. Я успешно использовал ItemFileWriteStore для получения данных, возвращаемых из запроса ajax в DataGrid, но я бы хотел использовать вместо этого новое хранилище памяти. Я использую адаптер ObjectStore, чтобы обернуть хранилище памяти, и данные заполняются в сетке.
Одна вещь меня беспокоит. В коде примера, который я выполняю, есть несколько вложенных узлов в объекте JSON, который я использую для заполнения сетки. Это один из объектов JSON стран, которые они используют в документации по dojo. Вот небольшой фрагмент этого объекта:
'items': [
{ 'name':'Africa', 'type':'continent', children:[
{ 'name':'Egypt', 'type':'country' },
{ 'name':'Kenya', 'type':'country', children:[
{ 'name':'Nairobi', 'type':'city' },
{ 'name':'Mombasa', 'type':'city' } ]
},
{ 'name':'Sudan', 'type':'country', 'children':
{ 'name':'Khartoum', 'type':'city' }
} ]
},
]
В экземпляре DataGrid я отправляю запрос, а затем задаю для qureyOptions значение {deep: true} следующим образом:
var grid = new DataGrid({
style: "width: 500px; height: 300px;",
store: this._geoStore,
structure: layoutGeo,
rowSelector: '20px',
columnReordering: true,
query: {},
queryOptions: { deep: true },
rowsPerPage: 20
}, document.createElement("div"));
Когда я использую старый ItemFileWriteStore, это работает нормально, и ВСЕ вложенные данные по существу сглаживаются и помещаются в сетку, как я и ожидал. Однако, когда я переключаю его на хранилище памяти, обернутое в адаптер ObjectStore, единственными данными, отображаемыми в сетке, является самый верхний родительский элемент объекта данных. В случае выборочных данных отображаются только данные, связанные с Африкой, но ни один из ее детей. Таким образом, кажется, что оператор queryOptions {deep: true} не влияет на использование хранилища памяти.
Есть ли какой-нибудь способ передачи вложенных данных в объектах JSON в сетку данных с использованием хранилища памяти, обернутого в ObjectStore? Я бы подумал, что класс-обертка позаботится об этом, и это возможно, но я не знаю, как это исправить.
Для всех, кто помогает, большое спасибо за ваше время и готовность поделиться своим опытом. Я действительно долго изучал документацию по додзё и сеть, пытаясь разобраться в этом. Боюсь, я мог бы замять что-то очевидное и надеюсь, что вы все можете помочь.