我正在实现一个使用 AngularJS 作为前端、Grails 作为后端的项目。
- Angular JS => 单页应用
- Grails => 在 WebApp 本身和第 3 方应用程序中使用的 REST API。
这是我设置项目的方式:
web-app
|
|_____ js ( angular controllers, modules, partial templates.)
|
|_____ images
|
|_____ css
grails-app
|
|_____ views ( in here I have my main view, the one I use at the first user request )
与其使用 Resources 插件,我更喜欢使用 Grunt 构建我自己的前端,然后我只链接布局本身内的最终文件。
我在 web-app 中构造了 js
文件夹,以包含一个 partials
文件夹,其中包含要在 AngularJS 中调用的所有部分模板
这是我用来加载 View 的非常标准的 Angular 代码:
angular.module('myapp', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/invoices', {
templateUrl: 'partials/invoices-list.html',
controller: InvoiceListCtrl
})
.when('/invoices/:invoiceId', {
templateUrl: 'partials/invoice-details.html',
controller: InvoiceDetailCtrl}
)
.otherwise({redirectTo: '/dashboard'}, {
templateUrl: 'partials/dashboard.html',
controller: DashboardCtrl
});
}]);
Angular 无法获取这些部分模板,因为部分文件夹未复制到 tomcat work
目录中。
我不知道哪种其他方法可以用于 Grails 支持的项目。
最佳答案
我认为问题是静态资源不是从默认的 grails-app 目录派生出来的,所以您需要包含文档根目录的完整路径,例如templateUrl: '/partials/invoices-list.html',
这是我对 ui-router 的设置:
App.config([
'$stateProvider'
'$urlRouterProvider'
($stateProvider, $urlRouterProvider) ->
$urlRouterProvider.otherwise("/")
$stateProvider
.state('intro', {
url: "/",
templateUrl: '/templates/intro.html'
})
关于java - 如何设置 Grails 和 AngularJS 部分模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18889226/