2014-01-28 9 views
8

Ich laufe auf grails 2.3.4 und über die Integration angularjs in meiner nächsten Anwendung.Wie man angular js in Grails 2.3.4 integrieren?

Ich denke, der beste Weg von der Server-Seite ist die Verwendung von Grails REST Integration in die Domänen-und Controller-Klassen.

Aber hier bin ich fest.

Wie bekomme ich Grails, um mit angularjs zu kommunizieren? (Über die index.gsp?, Wenn ja, wie es zu integrieren?) Was wäre eine gute Architektur?

Ich schätze wirklich Ihre Antworten !!!

PS .: Ich weiß, dass es ein Grails angular js Plugin gibt. Ich sehe jedoch einen Grund dafür!

Antwort

7

Wir wählten Verwenden Sie kein angular-js resources plugin, sondern verwenden Sie stattdessen unser eigenes. Nur für mehr Flexibilität auf wann und was zu aktualisieren etc.

Legen Sie einfach die angularjs Dateien in/js/lib Ordner. Erstellen Sie eine Ressourcenpaketdatei. (Wir haben grails-app/conf/AngularResources.groovy Datei) und deklarieren Sie Ihre eckigen js Ressourcenbündel dort wie unten gezeigt. Wir erklärten alle unsere Winkel Ressourcen, wie, Controller/services/apps/Richtlinien innerhalb AngularResources.groovy

modules = { 
'angular' { 
    resource url:"js/lib/angular/angular.min.js", nominify:true 
    resource url:"js/lib/angular/angular-resource.min.js", nominify:true   
    } 
} 

Erfordern das Modul auf dem Bildschirm, wo Sie wollen, es zu benutzen.

+0

Danke für Ihre Antwort! Haben Sie nur '1 index.gsp' Datei oder mehrere oder führen Sie' HTML-Dateien' aus. Bitte zeigen Sie die Struktur Ihrer 'index.gsp' Datei an! Wie werden deine Ansichten von angularjs geladen? – user2051347

+0

Wir haben eine einzelne gsp-Seite, die die App lädt. Auf dieser GSP-Seite benötigen wir alle benötigten Ressourcen-Bundles, zum Beispiel eckige, eckige Ressourcen, eckige Cookies, ng-app, ng-controller/services etc. Die Verzeichnisstruktur unserer ng-App ist dieser ähnlich ein http://stackoverflow.com/questions/21121827/intelligent-folder-structure-for-grails-2-3-4-in-combination-with-angular-js –

+0

Können Sie bitte auf einige Beispiel-App hinweisen, wenn möglich – Vish

0

Grails hat bereits ein Plugin für Winkel

http://grails.org/plugin/angularjs-resources

das Installieren und folgen instrcutions

Noch ein sehr gutes Beispiel für Grails und Winkel

https://github.com/hantsy/angularjs-grails-sample/

+0

ist dieses Beispiel zu arbeiten? Nach dem Auffüllen aller Felder, um ein Buch hinzuzufügen, wird der Dialog nicht geschlossen, nachdem ich auf Senden geklickt habe. Die Anmeldung funktioniert nicht, wenn Bootstrap-Benutzername und -Passwort verwendet werden. – johnsam

12

Wir haben zwei Projekte als zwei getrennte Welten. Das erste Projekt, die Server-Seite, ist in Grals. Wir schaffen "erholsame" Dienste. Dieses Projekt weiß nichts über eckiges oder Ressourcen-Plugin oder Asset-Pipeline; nicht einmal verwendet gsp Ansichten, nur json Antworten. In Zukunft können wir diese 'api' verwenden, um mobile Clients aufzubauen oder Informationen mit anderen Diensten auszutauschen.

Die andere Seite, der Client, weiß nichts über Grails. Es ist alles Statik Seiten mit html 5, Javascript und angularjs Rahmen.

Ich glaube, dass "es" das Paradigma ist, das von jetzt an jeder annehmen wird.

+1

Stimme völlig zu. Wenn Sie jedoch bereits eine umfangreiche Grails-App haben und mit einer Hybrid-Option beginnen möchten, [Clay McCoys Blogeintrag] (http://claymccoy.blogspot.ie/2012/09/grails-with-angularjs-and- coffeescript.html), das beschreibt, wie er GSP-Parameter in den eckigen $ -Scope unter Verwendung von ng-init einfügt, ist eine Lektüre wert. –

+0

Können Sie bitte, wenn möglich, auf eine Beispielanwendung hinweisen – Vish

7

Ich ziehe Asset-Pipeline

Zuerst installieren Sie das Plugin verwenden:

http://grails.org/plugin/asset-pipeline 

Danach wird Ihre Javascripts web-app/js/*-grails-app/assets/javascripts/* bewegen. Sie müssen dies auch mit Stylesheets und Bildern tun.

Installieren und Konfigurieren von NodeJS + npm Bibliotheken durch Bower Plugin

sudo apt-get install nodejs 
sudo apt-get install npm 
npm i -g bower 

Navigieren Sie zu Grails-app/Vermögen zu verwalten und AngularJS

cd grails-app/assets 
bower install angular --save 

In Ihrem application.js innerhalb Javascripts Ordner installieren, fügen Diese Zeilen in Zeile 1:

//= require angular/angular.js 
//= require_tree views 
//= require_self 

Schließlich fügen Sie diese Zeile in Ihre GSPs:

<asset:javascript src="application.js"/> 
0

Ich habe Demo-Anwendung mit Grails und angularjs gemacht. Benutzeranmeldung, Anmeldung, Erstellen der Bearbeitung Löschen von Kontakten. Ich habe dieses Frontend mit angularjs ähnliche Struktur zu Grails MVC-Muster erstellt. Kontaktmodul

1. Grails -> URLMappings, 
    Angular -> Routing (app.js) 
2. Grails -> ContactController(Actions:create,list,edit,delete,details) 
    Angular -> ContactController(Actions: create,list,edit,delete,details) 
3. Grails -> ContactService(Methods: create,save,edit,delete,details) 
    Angular -> ContactService(Functions: create,save,edit,delete,details) 
4. Views -> All views are created using Angularjs (Create, Details) 

ging ich durch viele Tutorials und tat diese App mit Grails MVC-Muster passen so jeder kann diese Winkel Demo-Anwendung verstehen, wenn sie auf Grails

wenig Wissen haben

Demo : http://jagadeesh-manne.rhcloud.com/

Quelle: http://mannejkumar.github.io/GrailsAngularDemoApp/