如何将角js融入grails 2.3.4?

时间:2014-01-28 09:43:28

标签: javascript angularjs grails grails-2.0 grails-plugin

我在grails 2.3.4上运行,虽然在我的下一个应用程序中集成angularjs。

我认为服务器端的最佳方法是在域和控制器类中使用grails REST集成。

但是我在这里被困住了。

如何让grails与angularjs通信?(在index.gsp上?,如果是这样,如何整合它?)什么是一个好的架构?

我非常感谢你的回答!!!

PS:我知道有一个grails angular js插件。但是我确实看到了使用它的任何理由!

5 个答案:

答案 0 :(得分:12)

我们有两个项目作为两个独立的世界。服务器端的第一个项目是grails。我们正在创造“宁静”的服务。该项目对角度或资源插件或资产管道一无所知;甚至不使用gsp视图,只有json个响应。将来我们可以使用'api'来构建移动客户端或与其他服务交换信息等。

另一方,客户,对grails一无所知。这是包含html 5,javascript和angularjs框架的所有静态页面。

我相信'它'是每个人从现在开始采用的范例。

答案 1 :(得分:7)

我们选择不使用angular-js资源插件,而是使用我们自己的插件。只是为了更灵活地更新何时以及更新等等。

将angularjs文件放在/ js / lib文件夹中。创建资源包文件。 (我们有grails-app / conf / AngularResources.groovy文件)并在那里声明你的角度js资源包,如下所示。我们声明了所有角度资源,比如AngularResources.groovy中的controller / services / apps /指令

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

要求屏幕上的模块使用它。

答案 2 :(得分:7)

我更喜欢使用Asset Pipeline

首先,安装插件:

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

在此之后,将您的javascripts从web-app/js/*移至grails-app/assets/javascripts/*。你必须使用样式表和图像来做到这一点。

安装并配置nodejs + npm以通过bower插件管理库

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

导航到grails-app / assets并安装angularjs

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

在javascripts文件夹中的application.js中,在第1行添加以下行:

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

最后,在您的GSP中添加此行:

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

答案 3 :(得分:0)

Grails已经有一个角度插件

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

安装此项并遵循指示

Grails和angular

的另一个非常好的例子

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

答案 4 :(得分:0)

我使用grails和angularjs完成了演示应用程序。用户登录,注册,创建编辑删除联系人。我使用angularjs类似于grails mvc pattern的结构创建了这个前端。 联系模块

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/