在Grails 3.2.3中的控制器重定向中向URL的开头添加#/

时间:2016-12-15 16:52:33

标签: grails

我正在Grails中构建一个自定义角度应用程序,但尽可能坚持默认的Grails控制器视图行为。

我要做的是:使用脚手架控制器。获得相同的行为,但通过#/到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;
        }
    });
});

2 个答案:

答案 0 :(得分:0)

你试过这个吗?

List_Agg()

更新:鉴于需要支持多种格式,教授角度以使用“漂亮”的网址可能是唯一的方法。 Here is an example posting具有以下代码:

class SomeController {
    LinkGenerator linkGenerator

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

答案 1 :(得分:0)

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

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

服务器响应可能比我在对话框中显示的内容略大,但它不会影响性能。并且控制器不知道他们的视图是在对话框内呈现还是作为完整的网页呈现,这首先是我想要的。