如何将 d3.js 图表合并到使用大豆模板的 jira 插件中?

How can I incorporate a d3.js chart into my jira plugin that uses soy templates?

提问人:bumblebev 提问时间:11/7/2023 最后编辑:bumblebev 更新时间:11/7/2023 访问量:18

问:

我目前有一个有效的 jira 插件,它使用 soy 模板显示工单元数据。我正在尝试将交互式 d3.js 图表合并到其中,但找不到有效的方法。当将 d3 代码直接添加到脚本标签中的模板中时,我可以成功地在仪表板上呈现 d3 对象。但是,当我尝试访问和使用我的 SOY 参数时,我遇到了错误,例如在我的 JS 代码中$array。不过,我可以毫无问题地在模板中访问和显示这些参数,并使用脚本标签进行输出。

此代码显示了一个工作模板,该模板在模板内的 JS 代码中显示 D3 对象,在 JS 代码中显示我的票证元数据。

{template .Chart}
    <div id = "container">
        <script src='https://cdnjs.cloudflare.com/ajax/libs/d3/3.3.3/d3.min.js'></script>

        <div class = "svg"></div>

        //correctly renders metadata
        {foreach $issue in $issues}
            <H2>Hello {$issue.key}</H2>
        {/foreach}

        <script type='text/javascript'>
        var title = svg.append("text")
                .text("Chart Title")
                .attr("x", w/2)
                .attr("y", 25)
                .attr("text-anchor", "middle")
                .attr("font-size", 18)
                .attr("fill", "#009FFC");

        // more working d3 code
        </script>
    </div>
{/template}

另供参考,在我的仪表板项目.js文件中使用此行调用模板

$element.append(Dashboard.Item.Tutorial.Templates.Chart({issues: self.issues}));

我尝试使用 |escapeJs 从 <script 部分访问参数,但无法让它工作。

我还尝试从外部 JS 文件链接到 D3 代码,但我也没有设法让它工作。

TIA在这里提供任何帮助将不胜感激!:)

javascript d3.js atlassian-plugin-sdk google-closure-templates soy-templates

评论


答: 暂无答案