Дерево dgrid 0.4.0 выглядит плоским перед взаимодействием пользователя
Попытка использовать dgrid 0.4.0 для отображения древовидной структуры. (нет предыдущего опыта работы с предыдущими версиями 0.3.x).
Я построил этот образец с двумя папками: Алиса и Боб; у каждого было бы несколько файлов (листьев) в этом.
Магазин ("astore.js")
define(['dojo/_base/declare',
'./dstore/Memory',
'./dstore/Tree'],
function(declare, Memory, Tree) {
var store = new (declare([Memory, Tree], {}))();
store.add({node:'bob', id:1, parent:null, hasChildren:true});
store.add({node:'alice', id:2, parent:null, hasChildren:true});
store.add({node:'thesis', id:3, parent:1, hasChildren:false});
store.add({node:'game', id:4, parent:1, hasChildren:false});
store.add({node:'picture', id:5, parent:2, hasChildren:false});
store.add({node:'plan', id:6, parent:2, hasChildren:false});
store.add({node:'mail', id:7, parent:2, hasChildren:false});
return store;
});
И скрипт запуска:
require(['dojo/_base/declare',
'app/dgrid/OnDemandGrid',
'app/dgrid/Tree',
'app/astore'],
function (declare, OnDemandGrid, Tree, astore) {
w = new (declare([OnDemandGrid, Tree],{}))({
collection: astore,
columns:[
{field:'node', label:'Whatever...', renderExpando:true}
]
}, 'slot');
w.startup();
});
Данные всегда выглядят плоскими, когда виджет отображается:
После того, как я нажму "Боб", эта часть будет отсортирована:
Затем я нажимаю "Алиса", и наконец все выглядит хорошо:
Однако, если я сортирую по столбцу, я снова все испорчу, хуже, чем когда-либо:
Я экспериментировал с образцом кода из лаборатории и получал те же результаты. Мои компоненты dgrid были загружены через Bower. Эта проблема присутствует на двух разных компьютерах с разными ОС и браузерами. И у меня иссякают идеи...:S Любой вклад очень ценится!
1 ответ
Как я и Дилан отмечали в вопросе github с тем же вопросом, вам нужно передать коллекцию в свою сетку, которая представляет только элементы верхнего уровня. Когда используешь dstore/Tree
, ты можешь позвонить store.getRootCollection()
для этого.
Так что вместо collection: astore
, ты хочешь collection: astore.getRootCollection()
,