当前位置: 首页 > 面试题库 >

无需使用html5mode即可使用AngularJS解析查询字符串的最佳方法

符功
2023-03-14
问题内容

使用 html5mode 解析Angular中的查询字符串的最佳方法是什么?(不使用html5mode,因为我们需要支持较旧的浏览器

无论是否使用哈希,我都会得到相同的未定义结果:

http://localhost/test?param1=abc&param2=def
http://localhost/test#/param1=abc&param2=def

$ routeParams和$ location.search()都返回未定义:

var app = angular.module('plunker', ["ngRoute"]);

app.controller('MainCtrl', ["$scope", "$routeParams", "$location",
  function($scope, $routeParams, $location) {

  console.log($routeParams, $routeParams.abc); //undefined, undefined
  console.log($location.search(), $location.search().abc); //undefined, undefined

}]);

我可以自己解析window.location.search,但我希望在Angular中有更好的方法。

Plnkr:http
://plnkr.co/edit/alBGFAkfqncVyK7iv8Ia?p=preview


问题答案:

查询参数应该在哈希之后:

http://localhost/test#/?param1=abc&param2=def

这应该允许$location.search()返回如下对象:

{
  param1: 'abc',
  param2: 'def'
}


 类似资料:
  • 在python中,从URL查询字符串(例如,通过表单附加到URL的数据)解析数据的最佳方法是什么?我的目标是接受表单数据并将其显示在同一页面上。我已经研究了几种方法,但并不完全是我想要的。 我正在创建一个简单的Web服务器,目标是学习套接字。此Web服务器仅用于测试目的。

  • 问题内容: 我正在使用解析Java中的字符串。但是,没有直接解析字符串的函数,所以我改为这样做: 这是最好的方法吗?我觉得必须有一个更简单的方法…谢谢! 问题答案: 直接回答您的问题-据我所知,没有更好的方法。使用输入源是因为它比较通用,可以处理来自文件,字符串或跨线的输入,这是我的理解。 您还可以尝试使用SAX Xml解析器- 它稍微有点基础,并且使用了Visitor模式,但是可以完成工作,对于

  • 问题内容: 我编写角度控制器的风格是这样的(使用控制器名称而不是函数) 我现在需要的是提供我要定义解析部分的路线时: 由于控制器定义为名称,如何解决以下问题? 为了更详细地阐明,我想在解析路由之前从服务器加载一些数据,然后在控制器中使用这些数据。 更新: 更准确地说,我希望每个模块都有其“解析”功能,该功能将在执行具有该控制器的root用户之前被调用。这篇文章中的解决方案(由MiskoHevery

  • 问题内容: 在此“ Hello World”示例中: 如何从查询字符串中获取参数? 他们在文档中提到: 但是我不知道如何使用它。有人可以解释吗? 问题答案: 您可以使用从方法URL模块在请求回调。 我建议您阅读HTTP模块文档,以了解回调函数。您还应该看看http://howtonode.org/之类的网站,并检查Express框架以更快地开始使用Node。

  • 问题内容: 我需要从此URL获取查询字符串,并且我不想使用request.META。我已经发现还有两种获取查询字符串的方法: 使用urlparse urlparse.urlparse(url).query 使用url编码 使用urlencode并向其中传递request.GET params字典以获取字符串表示形式。 那么哪种方法更好呢?我的同事更喜欢urlencode,但没有提供令人满意的解释。

  • 我需要从这个URL获取查询字符串https://stackoverflow.com/questions/ask?next=1 > 使用urlparse urlparse.urlparse(url.query) 使用url encode使用urlencode并将request.GET params字典传递到其中以获取字符串表示形式。 那么哪种方式更好呢?我的同事更喜欢urlencode,但没有提供令