如何设置Grails和AngularJS部分模板

ng-*_*app 5 javascript java grails grails-plugin angularjs

我正在实现一个项目,使用AngularJS作为前端,Grails作为后端.

  • Angular JS =>单页面应用程序
  • Grails => REST API将在WebApp本身和第三方应用程序中使用.

这就是我设置项目的方式:

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 )
Run Code Online (Sandbox Code Playgroud)

我不是使用Resources插件,而是使用Grunt构建自己的前端,然后我只链接布局本身内的最终文件.

js在web-app中构建了文件夹,以包含一个partials文件夹,其中包含要在AngularJS中调用的所有部分模板

这是加载视图的非常标准的角度代码:

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
    });
}]);
Run Code Online (Sandbox Code Playgroud)

会发生什么是Angular无法获取这些部分模板,因为部分文件夹不会复制到tomcat work目录中.

我不知道哪种方法可以用于Grails驱动的项目.

Ana*_*oly 0

我认为问题在于静态资源不是来自默认的 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'
      })
Run Code Online (Sandbox Code Playgroud)