Javascript 如何在我自己的自定义字段-velocity edit.vm中使用JIRA AUI函数
我正在尝试在我自己用JAVA编写的自定义字段的JIRA-in编辑模式中使用一些AUI。 我找到了这个页面:将来我想用Auiselect2做一个例子 -这里写着,这只是实验性的,那么我应该采取哪些步骤来使用它?在下面的示例中,您可以看到,我试图添加此函数性,但它很简单,不起作用。我正在使用文档中提到的一个示例- edit.vm:Javascript 如何在我自己的自定义字段-velocity edit.vm中使用JIRA AUI函数,javascript,jquery,velocity,custom-fields,jira-plugin,Javascript,Jquery,Velocity,Custom Fields,Jira Plugin,我正在尝试在我自己用JAVA编写的自定义字段的JIRA-in编辑模式中使用一些AUI。 我找到了这个页面:将来我想用Auiselect2做一个例子 -这里写着,这只是实验性的,那么我应该采取哪些步骤来使用它?在下面的示例中,您可以看到,我试图添加此函数性,但它很简单,不起作用。我正在使用文档中提到的一个示例- edit.vm: $webResourceManager.requireResource("cz.firma.rozy:zakaznik") <form class="aui"&g
$webResourceManager.requireResource("cz.firma.rozy:zakaznik")
<form class="aui">
<select id="select2-example" multiple>
<option value="CONF">Confluence</option>
<option value="JIRA">JIRA</option>
<option value="BAM">Bamboo</option>
<option value="JAG">JIRA Agile</option>
<option value="CAP">JIRA Capture</option>
<option value="AUI">AUI</option>
</select>
</form>
我的atlassian-plugin.xml是:
<web-resource key="zakaznik-resources" name="zakaznik Web Resources">
<dependency>com.atlassian.auiplugin:ajs</dependency>
<dependency>com.atlassian.auiplugin:jquery</dependency>
<dependency>com.atlassian.auiplugin:jquery-ui-other</dependency>
<dependency>com.atlassian.auiplugin:aui-select2</dependency>
<context>atl.general</context>
<context>atl.admin</context>
<resource type="download" name="zakaznik.css" location="/css/zakaznik.css"/>
<resource type="download" name="zakaznik.js" location="/js/zakaznik.js"/>
<resource type="download" name="images/" location="/images"/>
<context>zakaznik</context>
</web-resource>
...
<customfield-type name="Pridani zakaznika" i18n-name-key="customer-add.name" key="customer-add" class="cz.firma.rozy.jira.customfields.CustomerCustomField">
<description key="customer-add.description">Plugin, ktery prida zakaznika z abry</description>
<resource name="view" type="velocity" location="templates/viewCustomer.vm"/>
<resource name="edit" type="velocity" location="templates/edit.vm"/>
</customfield-type>
com.atlassian.auiplugin:ajs
com.atlassian.auiplugin:jquery
auiplugin:jqueryui-other
com.atlassian.auiplugin:aui-select2
总纲
atl.admin
扎卡兹尼克
...
插件,ktery prida zakaznika z abry
但当我访问编辑模式时,不会执行jQuery,浏览器控制台也不会写入任何错误或警告 只需将这一行添加到edit.vm中,就会包含select2 js
$webResourceManager.requireResource("com.atlassian.auiplugin:aui-select2")
您不需要将其作为依赖项添加到web资源中
在js文件调用中,只需通过以下方式选择2-
AJS.$("#select2-example").select2();
您只需要在edit.vm中添加以下内容
$webResourceManager.requireResourcesForContext("zakaznik")
我不同意提供的其他答案。既然我们已经在资源文件中添加了js,为什么还要在edit.vm文件中再次添加呢。只需参考我们已经使用其上下文创建的web资源。您需要通过
webResourceManager
加载aui资源。
无需更改atlassian plugin.xml
。
您的customfields.vm
文件可能如下所示:
#controlHeader ($action $customField.id $customField.name $fieldLayoutItem.required $displayParameters.noHeader)
$webResourceManager.requireResource("com.atlassian.auiplugin:aui-select2")
<script type="text/javascript">
AJS.toInit(function() {
AJS.$("#$customField.id").select2();
});
</script>
<select name="$customField.id" id="$customField.id" multiple>
#foreach ($option in $options)
<option value="$option">$option</option>
#end
</select>
#controlFooter ($action $fieldLayoutItem.fieldDescription $displayParameters.noHeader)
#controlHeader($action$customField.id$customField.name$fieldLayoutItem.required$displayParameters.noHeader)
$webResourceManager.requireResource(“com.atlassian.auiplugin:aui-select2”)
AJS.toInit(函数(){
AJS.$(“#$customField.id”)。选择2();
});
#foreach($期权中的期权)
美元期权
#结束
#controlFooter($action$fieldLayoutItem.fieldDescription$displayParameters.noHeader)
#controlHeader ($action $customField.id $customField.name $fieldLayoutItem.required $displayParameters.noHeader)
$webResourceManager.requireResource("com.atlassian.auiplugin:aui-select2")
<script type="text/javascript">
AJS.toInit(function() {
AJS.$("#$customField.id").select2();
});
</script>
<select name="$customField.id" id="$customField.id" multiple>
#foreach ($option in $options)
<option value="$option">$option</option>
#end
</select>
#controlFooter ($action $fieldLayoutItem.fieldDescription $displayParameters.noHeader)