2016-12-15 52 views
1

我在Grails中构建了一个自定义的角度应用程序,但尽可能地将其粘贴到默认的Grails Controller View行为。在Grails 3.2.3的控制器重定向中添加一个#/到起始URL

我想要做的是:使用脚手架控制器。获得相同的行为,但是通过在#url的开头添加#/。再次

http://localhost:8080/#/country/show/5

代替

http://localhost:8080/country/show/5

使角踢:让您保存记录后,你会被重定向到。我知道这不是标准的Angular行为,但我试图尽可能少地使用角度文件,因为我对角度知之甚少。

默认脚手架重定向是:

重定向国家

我试着使用:

重定向基地: “#/”,国家

重定向的国家,[群:“# /“]

重定向国家,基地:”#/“

绝对重定向:“#/”,国家

但是它们在调用时都会抛出500个错误。

这是在我的角度当前应用程序配置:

app.config(function($routeProvider) { 
    $routeProvider.when("/:controller/:action",{ 
     templateUrl:function(params){ 
      return '/'+params.controller+'/'+params.action; 
     } 
    }) 
    .when("/:controller/:action/:param",{ 
     templateUrl:function(params){ 
      return '/'+params.controller+'/'+params.action+'/'+params.param; 
     } 
    }); 
}); 
+0

这是什么目的? –

+0

我正在使视图呈现html片断,以便它们可以在对话框或“单个”视图中使用。没有/#控制器显示没有任何css或角度的纯html的 –

回答

0

你试过吗?

class SomeController { 
    LinkGenerator linkGenerator 

    def action() { 
     redirect uri: linkGenerator.link(
      controller: 'country', action: 'show', id: 5, base: '/#') 
    } 
} 

UPDATE:给予支持多种格式的要求,教学的角度一起工作“漂亮”的网址,可能是唯一的办法。 Here is an example posting有以下代码:

angular.module('scotchy', []) 
    .config(function($routeProvider, $locationProvider) { 

     $routeProvider 
      .when('/', { 
       templateUrl : 'partials/home.html', 
       controller : mainController 
      }) 
      .when('/about', { 
       templateUrl : 'partials/about.html', 
       controller : mainController 
      }) 
      .when('/contact', { 
       templateUrl : 'partials/contact.html', 
       controller : mainController 
      }); 

     // use the HTML5 History API 
     $locationProvider.html5Mode(true); 
    }); 
+0

我可以像这样硬编码 重定向(uri:(“#/ country/show /”+ country.id)) 但我是希望通过发送对象“国家”,并让控制器选择默认操作,但在网址 –

+0

的开头加“#/”来提交,我在回答中添加了更新。希望这可以帮助! – helgew

+0

我正在使用的当前应用程序配置工作正常。由于我不需要对每个URL进行硬编码,所以我希望很快将Spring Security添加到项目中。我使用的角度基本上有一个单一的页面视图,并使用顶部的网址。我别无选择,只能实施一个硬编码的ID,因为它工作正常:重定向行动:'显示',ID:country.id,base:'/#',但创建方法现在给我我曾经有过的同样的问题。因为我需要将Country对象发送到编辑视图,但是在/#开头 –

0

我最终完全放弃了角度。为了显示对话框中的视图,我只需从服务器返回的响应中提取html片段,并获得Grails包含的所有默认行为。

由于grails是一个完整的堆栈框架,它的前端是高度可定制的。除非你想构建一个完整的角度应用程序,否则不值得用角度来替换前端,只是为了它的单一视图功能。

服务器响应可能比我需要在对话框中显示的稍大,但它不会影响性能。控制器不知道他们的意见是在一个对话框中呈现还是作为完整的网页呈现,这正是我想要的。

相关问题