在Angular中传递$ location.path中的参数
我只是试图在我的控制器中使用$location.path() ,但也传递一个自定义variables作为参数。 所以它会看起来像这样我猜: 
 $scope.parameter = 'Foo'; $location.path('/myURL/' + $scope.parameter); 
但是这不起作用。 任何人都知道这应该在Angular中完成吗?
 要添加参数,你应该使用$location.search()方法: 
 $location.path('/myURL/').search({param: 'value'}); 
  $location方法是可链接的 。 
这产生:
 /myURL/?param=value 
将参数添加到url的另一种方法是:
  $location.path('/myURL/'+ param1); 
您可以定义到myPage.html的路线:
 config(['$routeProvider', function ($routeProvider) { $routeProvider.when('/myURL/:param1', { templateUrl: 'path/myPage.html', controller: newController }); }]); 
然后可以在newController中访问该参数,如下所示:
 var param1= $routeParams.param1; 
例如,如果您需要在您的URL中input一个或多个参数:
 $location.path('/path').search({foo: 'valueFoo', baz:'valueBaz'}) 
在你的url将代表
 /path?foo=valueFoo&baz=valueBaz 
要在其他控制器中获得参数:
 var urlParams = $location.search(); urlParams.foo will return valueFoo urlParams.baz will return valueBaz 
  function pathToSomewhere() { $stateParams.name= vm.name; //john $stateParams.phone= vm.phone; //1234 $stateParams.dateOfBirth= getDoB(); //10-10-1990 $location.path("/somewhere/").search($stateParams); }; 
这导致了url
 http://middle-of-nowhere.com/#/somewhere/?name=john&phone=1234&dateOfBirth=10-10-1990 
这样你不必手动input括号内的参数