2014-01-28 53 views
8

我在grails 2.3.4上運行,雖然我在下一個應用程序中整合了angularjs。如何將angular js整合到grails 2.3.4中?

我認爲從服務器端最好的方法是在域和控制器類中使用grails REST集成。

但是在這裏,我卡住了。

如何讓grails與angularjs進行通信?(通過index.gsp ?,如果是的話如何整合它?)什麼是一個好的架構?

我真的很感謝你的回答!

PS:我知道有一個grails angular js插件。不過,我確實看到使用它的任何理由!

回答

7

我們選擇不要使用angular-js資源插件,而是使用我們自己的。只是爲了更多的時間和更新等的靈活性。

只需將angularjs文件放在/ js/lib文件夾中。創建一個資源包文件。 (我們有grails-app/conf/AngularResources.groovy文件),並在那裏聲明你的角度js資源包,如下所示。我們宣佈我們所有的角資源一樣,控制器/服務/應用/指令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   
    } 
} 

內需要,你想用它在屏幕上的模塊。

+0

Thx爲您的答案!你只有'1 index.gsp'文件或多個文件,或者你運行'html文件'。請顯示你的'index.gsp'文件的結構!你如何加載angularjs的'views'? – user2051347

+0

我們有一個加載應用程序的gsp頁面。在那個GSP頁面,我們要求所需的所有資源包,例如,角,角資源,角餅乾,NG-應用,NG-控制器/服務等 我們的NG-應用程序的目錄結構幾乎與此類似一個 http://stackoverflow.com/questions/21121827/intelligent-folder-structure-for-grails-2-3-4-in-combination-with-angular-js –

+0

你可以請指出一些示例應用程序如果可能 – Vish

12

我們有兩個項目作爲兩個獨立的世界。第一個項目,服務器端,在Grails中。我們正在創造'寧靜'的服務。該項目對角度或資源插件或資產流水線一無所知;甚至不使用gsp視圖,只有json響應。未來我們可以使用'api'來構建移動客戶端或與其他服務交換信息等。

對方,客戶端,對grails一無所知。這是所有帶有html 5,javascript和angularjs框架的靜態頁面。

我相信'它'是每個人從現在開始採用的範例。

+1

完全同意。然而,當你已經有了相當多的Grails應用程序,並且你想從混合選項開始時,[Clay McCoy的博客條目](http://claymccoy.blogspot.ie/2012/09/grails-with-angularjs-and- coffeescript.html)描述他如何使用ng-init將GSP params注入角度$範圍值得一讀。 –

+0

如果可能,你可以指出一些示例應用程序 – Vish

7

我更喜歡使用資產管道

首先,安裝該插件:

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

在此之後,將您的JavaScript從web-app/js/*grails-app/assets/javascripts/*。你也必須使用樣式表和圖像來做到這一點。

安裝和配置+的NodeJS通過NPM鮑爾插件來管理圖書館

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

導航到的grails-app /資產並安裝angularjs

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

在你的application.js的JavaScript文件夾內,加這些行在行1:

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

最後,將此行添加到您的GSP:

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

我已經使用grails和angularjs完成了演示應用程序。用戶登錄,註冊,創建編輯刪除聯繫人。我使用angularjs類似於grails mvc模式的結構創建了這個前端。 聯繫模塊

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) 

我通過很多的教程去了,沒有這個程序,以配合Grails的MVC模式,所以任何一個可以理解,如果他們正在對Grails的

演示一知半解這個角的演示應用程序:http://jagadeesh-manne.rhcloud.com/

來源http://mannejkumar.github.io/GrailsAngularDemoApp/