2016-10-03 13 views
0

grails 2.5.4から3.1.9へのアップグレードに取り組んでいます。私はajax呼び出しに問題があります。Grailsは2.xから3.xにアップグレードします。アップグレード後にAjaxがテンプレートをレンダリングしない

私のアプリケーションには、サーバーから非同期にデータをロードするためにajaxリクエストを使用するgspテンプレートがあります。ここにその一つがあります。

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> 

には誤りがありませんので、私は問題があるかもしれないと思いますが、私どこに問題があるのか​​分かりません。何か案は?

+0

レンダリング(テンプレート: '/ ajax/localitiesWithCount'、モデル:[localitiesCountList:localitiesCountList])を使用して、テンプレートをレンダリングしたいあなたのGSPの名前は '_localitiesWithCount.gsp'です。私はこれがあなたの問題を解決するか、少なくともあなたを解決策に近づけると思う。 –

+0

ありがとうございました。これはうまくいくようです。 –

答えて

1

テンプレートをレンダリングする場合は、render(template: '/ajax/localitiesWithCount', model: [localitiesCountList: localitiesCountList])を使用し、すべてのテンプレートがアンダースコアで始まるため、GSPの名前が_localitiesWithCount.gspであることを確認する必要があります。

関連する問題