У меня есть пользовательский виджет:Dojo пользовательского виджета не оказывающие внутри панели содержимого
define([
......],
function (...){
return decalre('ownerWidget', [....],{
templateString: template,
postCreate: function() {
this.inherited(arguments);
var data ={
identifier:'id',
label: 'id',
items: [{
id:'28'
owner: 'Fred',
attendingId: '1',
numberOfVisits: '3',
vetCostsThisYear: '4',
complaints: '0',
children[{
id : '29',
pet:'Mario',
numberOfVisits: '3',
vetCostsThisYear: '4',
complaints: '0'
}]
}]
};
var store = new ItemFileWriteStore({data:data});
var model = new ForestStoreModel({store : store, childrenAttrs: ['children']});
var layout = [
{name: 'Owner', field:'owner', width: '40%'},
{name: 'Pet', field: 'pet', width: '40%'},
{name: 'Attending Id', field:'attendingId', width: '5%'},
{name: 'Visits', field: 'numberOfVisits', width: '5%'}];
var gridTree = new LazyTreeGrid({
treeModel: model,
structure: layout
}, document.createElement('div'));
this.gridTreeNode.appendChild(gridTree.domNode);
}
});
});
шаблон для этого:
<div data-dojo-attach-point="gridTreeNode" style="height: 100%; width: 100%"></div>
виджет затем объявлен в других виджетах ШАБЛОН как так:
<div class="grid" data-dojo-attach-point="byOwner" data-dojo-type="dijit/layout/ContentPane"></div>
javascript для вышеуказанного заявления:
this.byOwner.set('title', "Owner");
this.byOwner.set('content', "ownerWidget");
Я получаю серый фон, и вкладка отображается с правильным заголовком, но сетка не кажется рендерингом, я вижу, что есть дерево дерева для сетки, но я просто не вижу сетку на стр.
Я не уверен, что здесь отсутствует, нет никаких ошибок или предупреждений.
Dojo version 1.10.0
Сначала я могу сказать: у вас есть опечатка 'decalre', вы забыли назвать' gridTree.startup() '... Там вероятно, больше, чем это ... – ben
Объявление действительно было опечатки, я случайно удалил его и опечатки, когда я перепечатал его в вопрос, мое понимание додзе заключается в том, что если вы декларативно объявляете виджет, то запуск запускается парсером? – user1383163
«startup» компонентов, созданных парсером, автоматически выполняется (например, при использовании декларативного синтаксиса). Однако в вашем случае вы программно создали 'gridTree', поэтому вам нужно вручную вызвать' startup' – ben