我正在将 grails 应用程序从 grails 2.5.4 升级到 3.1.9,我在 ajax 调用方面遇到了问题。
我的应用程序中有 gsp 模板,它使用 ajax 请求从服务器异步加载数据。这是其中之一。
以下 javascript 调用激活 ajax 请求。
$(document).ready(function () {
$(".chosen-select").chosen();
$(".automaticAjaxLoad").each(function () {
var url = $(this).attr("ajaxLoadingUrl");
if (url != "") {
$(this).load(url);
}
});
});
这成功地调用了以下控制器操作。
def getLocalitiesWithCount() {
def localitiesList = Locality.list(sort: "posOrder", order: "desc")
def localitiesCountList = []
localitiesList.each { locality ->
def c = JobOffer.withCriteria() {
createAlias("positionLocality", "_positionLocality", CriteriaSpecification.LEFT_JOIN)
eq("_positionLocality.id", locality.id)
//between("l.accessDate", today, today + 1)
gt('willExpire', new Date())
isNotNull('datePublished')
projections {
// countDistinct("id")
rowCount()
}
}
def jobCountMap = [:]
jobCountMap.put("i18NameFull", locality.i18NameFull)
jobCountMap.put("i18Name", locality.i18Name)
jobCountMap.put("id", locality.id)
jobCountMap.put("name", locality.name)
jobCountMap.put("count", c.first())
localitiesCountList.push(jobCountMap)
log.error('Localities count ' + localitiesCountList.size());
}
render(view: '/ajax/localitiesWithCount', model: [localitiesCountList: localitiesCountList])
}
直到这一刻,一切都按预期工作。比它应该呈现以下 gsp 模板,但它没有。它应该属于的地方留空,控制台没有错误
<h4> ${message(code: "localities.header")} </h4>
<hr>
<ul style="font-size: 85%; margin: 0; list-style: none;">
<g:each in="${localitiesCountList}"
status="i" var="localityInstance">
<g:if test="${localityInstance.count != 0}" >
<li>
<g:link controller="jobOffer" action="index" params="[positionLocalities: localityInstance.id]">
<h8>
${message(code: localityInstance.i18NameFull)}
[${localityInstance.count}]
</h8>
</g:link>
</li>
</g:if>
</g:each>
</ul>
我不得不重新加载从资源插件到资产管道的资产,所以我想可能存在问题,但我不知道问题出在哪里。有任何想法吗?