全局查询字符串参数
Global querystring parameter
我必须为现有的AngularJS应用程序添加功能。我需要能够向angular应用的任何路由传递一个额外的参数。(这是一个电子邮件跟踪ID)
如果可能的话,我想使用querystring参数,而不影响现有的路由。然后在某处编写一些代码来检查querystring参数(不确定这部分,某种全局导航侦听器?)
我对angular不是很熟悉。我需要混乱的路由和混乱的代码在控制器,或者有某种方式我可以编码一个全局服务来解析querystring参数,而不管路由?
我知道我可以创建一个使用$location
获取querystring参数的服务,但我必须将该服务注入每个控制器,这似乎有点多余。
因为这是一个电子邮件跟踪id,我假设你只需要在用户第一次进入网站时抓住它一次。它也看起来像你不是在寻找一个超级深入的解决方案,所以我建议只是抓住它的主模块(你的应用程序)是第一次创建和存储跟踪id作为一个属性在你的应用程序。
有一个$locationChangeStart
和$locationChangeSuccess
事件,在$rootScope
上触发,如果您想在每次页面更改时从路由获取查询字符串,您可以在某个地方绑定到运行块。
但是如果你试图在整个应用程序中跟踪该值,一旦你从服务器获得它,你可以将它存储在一个服务中,并在应用程序中需要它的任何地方注入它。如果你试图避免在Angular应用中注入依赖,那么你只会伤害到自己,尤其是在编写测试的时候。你的控制器不应该依赖于那些没有通过应用注入器提供的东西。
使用$location
。它添加了哈希查询字符串参数,如"example.com/#?myParam=value"
获取查询字符串参数:
$location.search(); // gives you an object of params
设置查询字符串参数
$location.search('myParam', 'value'); // one at a time
$location.search({ // or pass an object
'first':1,
'second':2
});
只要确保在你的控制器/指令中注入$location
。
- 从查询字符串参数推断出正确的数据类型
- 如何使用JQuery在HTML中创建包含字符串参数的引号的onclickjavascript链接
- 从带参数的字符串变量调用函数中的函数
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何格式化match()参数以定位电子邮件中的字符串
- 将JSON字符串转换为函数参数
- 如何用javascript替换Jquery字符串上的新参数
- 模版启动错误-类型错误(“参数”url'必须是字符串,而不是“+类型的url”)
- 在 URL 字符串中传递参数字符串
- 如何在附加的 html 中的字符串上连接 javascript 函数中的参数字符串
- jQuery:从参数字符串设置表单状态
- 使用 cookie 传递 URL 参数字符串
- 寻找一个正则表达式来解析 JS 的参数字符串
- 有必要限制node.js中GET请求参数字符串的大小吗
- 使用jquery获取javascript中的参数字符串
- 使用JavaScript更改url参数字符串
- 如何在提交GET表单后将变量插入到生成的url参数字符串中
- JavaScript:向JavaScript函数发送以逗号分隔的参数字符串
- 无法通过XMLHttpRequest发送参数字符串
- 从Javascript中获取url参数字符串