在Angular中传递$ location.path内的参数

时间:2014-03-27 13:13:37

标签: javascript angularjs

我只是尝试在我的控制器中使用$location.path(),但也将自定义变量作为参数传递。所以它看起来像这样我想:

$scope.parameter = 'Foo';

$location.path('/myURL/' + $scope.parameter);

但这不起作用。任何人都知道如何在Angular中完成这项工作?

4 个答案:

答案 0 :(得分:176)

要添加参数,您应该使用$location.search()方法:

$location.path('/myURL/').search({param: 'value'});

$location方法可链接

这个产品:

/myURL/?param=value

答案 1 :(得分:38)

向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;

答案 2 :(得分:12)

例如,如果您需要在URL中输入一个或多个参数:

$location.path('/path').search({foo: 'valueFoo', baz:'valueBaz'})
您网址中的

代表

/path?foo=valueFoo&baz=valueBaz

要在其他控制器中获取参数:

var urlParams = $location.search();


urlParams.foo will return valueFoo

urlParams.baz will return valueBaz

答案 3 :(得分:2)

  function pathToSomewhere() {
    $stateParams.name= vm.name; //john
    $stateParams.phone= vm.phone; //1234
    $stateParams.dateOfBirth= getDoB(); //10-10-1990

    $location.path("/somewhere/").search($stateParams);

  };

这会产生网址

http://middle-of-nowhere.com/#/somewhere/?name=john&phone=1234&dateOfBirth=10-10-1990

这样您就不必手动输入括号内的参数