【发布时间】:2014-04-29 15:24:35
【问题描述】:
我正在开发一个 SPA AngularJs 应用程序,它必须处理一些特定的旧 URL。
我正在使用可以正常工作的基本 $routeProvider,但有一个例外:当我调用像
这样的特殊 urlhost:port/app/index.html#/products?features=contracttype=loyalty&sn=value&filter=2351&20
控制器被调用两次:
第一次使用正确的查询字符串:features=contracttype=loyalty&sn=value&filter=2351&20
第二次修改查询字符串:
features=contracttype&sn=value&filter=2351
我已将调试代码放在 $routeProvider.config 函数中,而
.when('/products',
{
controller: 'ProdCtrl',
templateUrl: 'partials/prod.html'
})
被调用两次,但只有当我有这种特殊类型的 url 时。
当我有一个常规的 qs 时,其他一切都可以正常工作,例如 ?param1=value2¶m2=value2...
我的问题是如何获取查询字符串 unmodified ,为什么控制器会被初始化两次?
我必须提醒我无法更改查询字符串(由于遗留问题),我所能做的就是将它传递给后端应用程序。
【问题讨论】:
标签: angularjs query-string angularjs-routing