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

Azz*_*ude 86 javascript angularjs

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

$scope.parameter = 'Foo';

$location.path('/myURL/' + $scope.parameter);
Run Code Online (Sandbox Code Playgroud)

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

moh*_*sti 179

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

$location.path('/myURL/').search({param: 'value'});
Run Code Online (Sandbox Code Playgroud)

$location方法是可链接的.

这产生:

/myURL/?param=value
Run Code Online (Sandbox Code Playgroud)

  • 我不得不删除尾随/以使其工作.这段代码是工作副本```$ location.path('/ myURL').search({param:'value'});``` (2认同)

krz*_*ste 38

将参数添加到url的另一种方法是:

 $location.path('/myURL/'+ param1);
Run Code Online (Sandbox Code Playgroud)

你可以定义到myPage.html的路由:

config(['$routeProvider', function ($routeProvider) {
        $routeProvider.when('/myURL/:param1', {
            templateUrl: 'path/myPage.html',
            controller: newController
            });
    }]);
Run Code Online (Sandbox Code Playgroud)

然后可以在newController中访问该参数,如下所示:

var param1= $routeParams.param1;
Run Code Online (Sandbox Code Playgroud)


Luc*_*res 12

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

$location.path('/path').search({foo: 'valueFoo', baz:'valueBaz'})
Run Code Online (Sandbox Code Playgroud)

在你的网址中将代表

/path?foo=valueFoo&baz=valueBaz
Run Code Online (Sandbox Code Playgroud)

要在其他控制器中获取params:

var urlParams = $location.search();


urlParams.foo will return valueFoo

urlParams.baz will return valueBaz
Run Code Online (Sandbox Code Playgroud)