Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularjs ui路由器控制器如何从java后端重定向读取参数?_Java_Angularjs_Angular Ui Router - Fatal编程技术网

angularjs ui路由器控制器如何从java后端重定向读取参数?

angularjs ui路由器控制器如何从java后端重定向读取参数?,java,angularjs,angular-ui-router,Java,Angularjs,Angular Ui Router,路线定义如下: .state('about', { url: '/about', controller: 'AboutCtrl', templateUrl: 'views/about/about.html' }) Java后端: servletResponse.setHeader("type", "something"); servletResponse.sendRedirect("http://xxxxx

路线定义如下:

.state('about', {
            url: '/about',
            controller: 'AboutCtrl',
            templateUrl: 'views/about/about.html'
        })
Java后端:

servletResponse.setHeader("type", "something");
servletResponse.sendRedirect("http://xxxxx/yyyy/#!/about");

那么如何在AboutCtrl中获取“type”参数呢?

我不知道如何使用
servletResponse
,但是从
setHeader
方法的名称来看,您试图设置的是头值,而不是参数值

使用
ui-router
(我假设您使用的是
ui-router
),有几种方法可以解析参数。您可以查看此项了解更多详细信息,但以下是一些方法:

如果您决定使用
servletResponse.sendRedirect(“http://xxxxx/yyyy/#!/关于/某事),您可以执行以下操作:

.state('about', {
   url: '/about/:type', //or even url: '/about/{type}'
   controller: 'AboutCtrl',
   templateUrl: 'views/about/about.html'
});

function AboutCtrl($stateParams){
   console.log($stateParams.type); //something
}
.state('about', {
   url: '/about/',
   params: {
        type: null
    },
   controller: 'AboutCtrl',
   templateUrl: 'views/about/about.html'
});

function AboutCtrl($stateParams){
   console.log($stateParams.type); //something
}
如果要使用查询参数
servletResponse.sendRedirect(“http://xxxxx/yyyy/#!/about?type=something),您应该将您所在州的URL与
URL:'/about?type'
匹配

如果要使用参数而不在州的
url
中定义参数,可以执行以下操作:

.state('about', {
   url: '/about/:type', //or even url: '/about/{type}'
   controller: 'AboutCtrl',
   templateUrl: 'views/about/about.html'
});

function AboutCtrl($stateParams){
   console.log($stateParams.type); //something
}
.state('about', {
   url: '/about/',
   params: {
        type: null
    },
   controller: 'AboutCtrl',
   templateUrl: 'views/about/about.html'
});

function AboutCtrl($stateParams){
   console.log($stateParams.type); //something
}

您可以在提供的链接中找到更多详细信息和变体。

以下内容对我很有用:
servletResponse.sendRedirect(“http://xxxxx/yyyy/#!/关于/某事)
和$stateProvider的相应代码,而
servletResponse.sendRedirect(“http://xxxxx/yyyy/#!/about?type=something)
给了我type=null,并且没有设置传递的值。我的错误是,这个特定的大小写应该与
url:'/about?type'
匹配。我会马上编辑这个。