2015-06-26 16 views
5

Ho un'app Grails 2.4.4 e sto provando a implementare un GSP che sfrutta un jQuery DataTable. Vedo che c'è un DataTable plugin ma sembra non mantenuto e incompatibile con Grails 2.x. Per non parlare del fatto che lo dovrebbe essere un modo per includere semplicemente qualsiasi lib di JS in Grails senza richiedere esplicitamente un plug-in.Come importare jQuery DataTables in Grails 2.4.4

Ecco la sezione plugins della mia BuildConfig:

plugins { 
    build ":release:3.0.1" 
    build ":tomcat:7.0.52.1" 

    compile "org.grails.plugins:gson:1.1.4" 
    compile ":rest-client-builder:1.0.3" 
    compile ":yammer-metrics:3.0.1-2" 

    runtime ":jquery:1.11.1" 
    runtime ":cached-resources:1.0" 
    runtime ":resources:1.2.14" 
    compile ":cache-headers:1.1.7" 

    compile ":rest-client-builder:1.0.3" 
    compile ":export:1.6" 
    compile ":standalone:1.2.3" 
    compile ":cache-headers:1.1.7" 
    compile ":scaffolding:2.1.2" 
    compile ':cache:1.1.3' 

    runtime ":resources:1.2.14" 
    runtime ":hibernate:3.6.10.15" 
    runtime ":database-migration:1.4.0" 
    runtime ":jquery:1.11.1" 
} 

Per ragioni al di fuori del campo di applicazione di questo quesiton, io non posso rimuovere o modificare le dichiarazioni esistenti nella sezione plugins, ma posso aggiungere a loro. Ho sentito dire che qualcosa chiamato "asset pipeline" è il nuovo modo interessante di aggiungere librerie JS a un'app Grails, ma tutta la letteratura che riesco a trovare su questa pipeline è vaga e di alto livello. E non riesco a trovare esempi reali concreti di utilizzo di questa pipeline per includere DataTable in un'app Grails.

Il "! Ciao Mondo" versione di un DataTable sembra essere questo:

<table id="example" class="display" cellspacing="0" width="100%"> 
    <thead> 
     <tr> 
      <th>Name</th> 
      <th>Position</th> 
      <th>Office</th> 
     </tr> 
    </thead> 

    <tbody> 
     <tr> 
      <td>Tiger Nixon</td> 
      <td>System Architect</td> 
      <td>Edinburgh</td> 
     </tr> 

     ...lots of more rows 
    </tbody> 
</table> 

$(document).ready(function() { 
    $('#example').DataTable(); 
}); 

Allora io mi chiedo: Come vado ho la (sopra) "Ciao Mondo" in esecuzione DataTable all'interno di un GSP ? Cosa specifiche configurazioni, plug-in, ecc. Devo cablare per farlo funzionare?

risposta

1

se i file js DataTable vengono salvati in questa web-app \ js di directory, è possibile utilizzare questo tag Grails nella vista in cui è necessario un DataTable.

<g:javascript src="jquery.datatables.min.js" /> 

Allo stesso modo, è possibile ottenere il file css richiesto in quanto tale

<g:external dir="css" file="jquery.datatables.css" /> 

una volta che tali i file necessari vengono caricati, è possibile chiamare la funzione jQuery

<g:javascript> 
    $(document).ready(function() { 
     $('#example').DataTable(); 
    }); 
</g:javascript> 
Problemi correlati