Диаграммы Xpages Dojo ломают csjs

Я только начал использовать функцию построения диаграмм Dojo в Xpages. После изучения этого руководства Эндрю Чемпиона. Я обнаружил, что простой скрипт csjs для создания круговой диаграммы не работает. Он прерывается при создании круговой диаграммы в CSJS. Использование самого основного кода для лучшей читабельности.

makeCharts = function() 
{
alert("test");
var pieChart = new dojox.charting.Chart2D("#{id:panel1}");
};

Оповещение в приведенном выше коде не запускается, когда я вызываю функцию в своем Xpage. Я точно следовал инструкциям, но не имел никаких результатов. Любая помощь будет оценена по достоинству.

Исходный код Xpage ниже:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" dojoParseOnLoad="true"
    dojoTheme="true">
    <xp:this.resources>
        <xp:dojoModule name="dojox.charting.Chart2D"></xp:dojoModule>
        <xp:script src="/scriptsChartDojo.jss" clientSide="false"></xp:script>
        <xp:script src="/scriptsChartDojoCSJS.js" clientSide="true"></xp:script>
    </xp:this.resources>
    <xp:scriptBlock id="scriptBlock1"
        value="XSP.addOnLoad(makeCharts);">
    </xp:scriptBlock>
    <xp:panel style="height:450px;width:450px" id="panel1">
        </xp:panel>
    </xp:view>


person Muhammed Ismail Carrim    schedule 02.07.2020    source источник
comment
Где определена функция makeCharts?   -  person Per Henrik Lausten    schedule 02.07.2020
comment
Приведенный выше код является моим определением в файле scriptsChartDojoCSJS.js. @PerHenrikLausten   -  person Muhammed Ismail Carrim    schedule 02.07.2020
comment
Я не думаю, что вы можете включать сгенерированный сервером код в файлы js. Если вы откроете файл scriptsChartDojoCSJS.js в своем браузере, вы увидите, что #{id:panel1} не был изменен. Вместо этого вы можете добавить функцию makeCharts в ваш xp:scriptBlock.   -  person Per Henrik Lausten    schedule 02.07.2020
comment
Спасибо. Это сработало. Также я хотел выяснить, возможно ли отправить массив объектов json в csjs из ssjs в переменной sessionScope. Когда я пытаюсь использовать sessionScope.get в своем блоке сценария. Он не работает? @PerHenrikLausten   -  person Muhammed Ismail Carrim    schedule 02.07.2020
comment
Я предлагаю вам добавить новый вопрос с этой проблемой. Я добавлю свой комментарий об объединении csjs и ssjs в качестве ответа, который вы можете принять.   -  person Per Henrik Lausten    schedule 02.07.2020


Ответы (1)


Я не думаю, что вы можете включать сгенерированный сервером код в файлы js. Если вы откроете файл scriptsChartDojoCSJS.js в своем браузере, вы увидите, что #{id:panel1} не был изменен.

Вместо этого вы можете добавить функцию makeCharts в ваш файл xp:scriptBlock.

person Per Henrik Lausten    schedule 02.07.2020