$ location.search()[“mode”]在angularjs中返回undefined

时间:2013-11-13 15:37:02

标签: angularjs

我对angularjs比较新,并且有以下问题。我有一个看起来像的网址:

localhost:10001/Broadcast/New?mode=launchQL&ID=U1DboHfQVU65VYQ21t5nLw

在我的控制器中,我正在尝试根据参数模式和ID设置一些逻辑。

myApp.controller('MyCtrl', function($scope, $http, $filter, $log, $timeout, $location){
$scope.mode = ($location.search())['mode'];
$scope.ID = ($location.search())['ID'];
}

我无法确定为什么$ location.search()没有返回字典

{'mode':'launchQL', 'ID':'U1DboHfQVU65VYQ21t5nLw'}

正如预期的那样,文档说。我不确定我在这里缺少什么。 任何帮助表示赞赏。提前感谢您的时间。

1 个答案:

答案 0 :(得分:4)

这是因为你在AngularJS中使用的东西需要在哈希(#)或hashbang(#!)后面。你现在拥有的网址只是一个定期查询字符串的常规网址。你想要的是AngularJS中单页应用程序(SPA)中指向某个控制器的路由设置。从那里你可以访问搜索变量,如果提供正常路线。

所以你的网址应该是这样的:

localhost:10001/Broadcast/New#someroute?mode=launchQL&ID=U1DboHfQVU65VYQ21t5nLw