Перезаписать data-dojo-props для атрибута title в dijit/TitlePane.

Я создал TitlePane и хочу динамически загружать данные из метода get в свойство Title. На данный момент все это работает. Однако теперь, когда данные загружаются (4 отдельных типа), все они смешиваются. Я хочу разделить полученные данные равномерно (25%) по заголовку.

Например:

<div id="tp2" data-dojo-type="dijit/TitlePane" data-dojo-props="title: 'I'm a TitlePane        
Too'">
Click arrow to close me.
</div> 

В этом примере заголовок установлен на «Я тоже TitlePane».

Я хочу изменить заголовок, чтобы каждое из четырех слов было равномерно распределено по заголовку панели. Однако для такого рода вещей нет дополнительных свойств.


person PurplePanda    schedule 08.08.2014    source источник
comment
Вам нужно расширить заголовок или написать свой собственный виджет.   -  person James Sampica    schedule 08.08.2014


Ответы (1)


Используйте метод «set», чтобы установить новый заголовок. Например:-

<div id="tp2" data-dojo-type="dijit/TitlePane" data-dojo-props="title: 'I'm a TitlePane        
Too'">
Click arrow to close me.
</div> 

//For this above example, title is replaced as follows in JS
dijit.byId('tp2').set('title','New title');

Обновление: если эта панель заголовка создается динамически без идентификатора, то получите объект виджета с помощью запроса css.

dijit.getEnclosingWidget(dojo.query(".dijitTitlePane")[0]).set('title','New title');

dojo.query(".dijitTitlePane") => даст массив всех domNodes панели заголовка. Из этого выбрал тот, который вам нужен. Я выбрал «0» индекс, т.е. 1-й узел панели заголовка на странице. Затем я получаю объект виджета этого domNode, а затем устанавливаю заголовок.

person vivek_nk    schedule 08.08.2014
comment
Так что на самом деле то, что я использовал в качестве примера, не так, как я это сделал. Моя панель заголовка создается динамически в файле js, когда приходит запрос на получение. поэтому мой выглядит примерно так: var newPane = new TitlePane({id: idName, title: Jdata[index].PatientName, open: false}).placeAt(self.roundREC, last); поэтому он помещается внизу div, который находится в html-файле. поэтому нет конкретного идентификатора, который я могу использовать... - person PurplePanda; 08.08.2014
comment
Итак, в вашем JS-коде вы устанавливаете идентификатор как idName. Итак, у вас есть идентификатор :) Используйте его, чтобы получить виджет. В противном случае вы можете использовать селекторный запрос CSS --› dijit.getEnclosingWidget(dojo.query(.dijitTitlePane)[0]).set('title','New title'); - person vivek_nk; 09.08.2014
comment
Так что это дает мне только ссылку на заголовок, но мне нужно знать, как поместить данные заголовка в четыре столбца, чтобы они были равномерно распределены. - person PurplePanda; 11.08.2014