如何解决如何在 Webwork1 模块的 Velocity 文件中使用 JavaScript?
我有一个带有视图的 Atlassian SDK webwork1 模块:
<webwork1 key="ai-config" name="AI Config" i18n-name-key="ai-config.name">
<description key="ai-config.description">The AI Config Plugin</description>
<actions>
<action name="com.softgile.jira.webwork.AIConfigAction" alias="AIConfigAction">
<view name="success">/templates/ai-config/success.vm</view>
</action>
</actions>
</webwork1>
在视图中我有几种形式:
<form class="aui" id="configForm" method="post" action="AIConfigAction!saveIp.jspa">
...
</form>
<form class="aui" id="serviceName" method="post" action="AIConfigAction!saveService.jspa">
...
</form>
我还有一个按钮,用 JS 控制:
<div class="field-group">
<label for="authenticate">
<span class="aui-icon aui-icon-large aui-iconfont-app-access">Insert meaningful text here for accessibility</span>
</label>
<div class="buttons">
<button class="aui-button aui-button-primary" id="authenticate">Authenticate</button>
</div>
</div>
AJS.toInit(function(){
AJS.$(document).on('click','#authenticate',function(e) {
e.preventDefault();
alert("authenticate");
});
});
两种形式都可以正常工作,并且当我单击按钮时 JS 可以工作。但是当我提交其中一个表单时 JS 停止工作,它只在提交表单之前有效。我看到 URL 从 AIConfigAction.jspa
更改为 AIConfigAction!saveService.jspa
,在这种情况下 JS 不起作用。我怎样才能让 JS 工作?
解决方法
我自己找到了解决方案。所以,就我而言,问题是我在 Webwork 的 doExecute() 方法中包含了网络资源。这就是为什么在调用 doSave() 等其他方法后,网络资源停止工作。
解决方案 - 将 Web 资源包含移至 Webwork 构造函数:
@Inject
public AIConfigAction(WebResourceManager webResourceManager) {
webResourceManager.requireResourcesForContext("myPlugin");
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。