我正在运行grails 2.3.4
,虽然在我的下一个应用程序中集成angularjs.
我认为从服务器端最好的方法是REST
在域和控制器类中使用grails 集成.
但是在这里我被困住了.
如何让grails与angularjs进行交流?(通过index.gsp
?,如果是这样如何整合它?)什么是一个好的架构?
我非常感谢你的回答!
PS.:我知道有一个grails angular js插件.但是我确实看到了使用它的任何理由!
我更喜欢使用Asset Pipeline
首先,安装插件:
http://grails.org/plugin/asset-pipeline
在此之后,请将您的JavaScript 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"/>
我们有两个项目作为两个独立的世界.服务器端的第一个项目是grails.我们正在创造"宁静"的服务.该项目对角度或资源插件或资产管道一无所知; 甚至不使用gsp视图,只使用json
响应.将来我们可以使用'api'来构建移动客户端或与其他服务交换信息等.
另一方面,客户对grails一无所知.这是所有静态页面html 5
,javascript和angularjs框架.
我相信'它'是每个人从现在开始采用的范例.
我们选择不使用angular-js资源插件,而是使用我们自己的插件.只是为了更灵活的时间和更新等.
只需将angularjs文件放在/ js/lib文件夹中.创建资源包文件.(我们有grails-app/conf/AngularResources.groovy文件)并在那里声明你的角度js资源包,如下所示.我们在AngularResources.groovy中声明了所有角度资源,例如controller/services/apps/directives
modules = { 'angular' { resource url:"js/lib/angular/angular.min.js", nominify:true resource url:"js/lib/angular/angular-resource.min.js", nominify:true } }
需要屏幕上要使用它的模块.