$location.search()[“mode”在angularjs中返回未定义的

$location.search()[“mode”在angularjs中返回未定义的,angularjs,Angularjs,我对angularjs比较陌生,有以下问题。我有一个url,看起来像: localhost:10001/Broadcast/New?mode=launchQL&ID=U1DboHfQVU65VYQ21t5nLw 在我的控制器中,我试图根据参数mode和ID设置一些逻辑 myApp.controller('MyCtrl', function($scope, $http, $filter, $log, $timeout, $location){ $scope.mode = ($locati

我对angularjs比较陌生,有以下问题。我有一个url,看起来像:

localhost:10001/Broadcast/New?mode=launchQL&ID=U1DboHfQVU65VYQ21t5nLw
在我的控制器中,我试图根据参数mode和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'}
正如文件所说的那样。我不确定我错过了什么。
感谢您的帮助。提前感谢您的时间。

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

因此,您的url应该如下所示:

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

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

因此,您的url应该如下所示:

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

太好了,谢谢。这正是我需要的。太好了,谢谢。这正是我所需要的。