使用Angular从当前URL获取参数

时间:2015-05-26 08:32:52

标签: angularjs

如何从当前网址获取参数?

我有网址http://localhost/admin.brands/edit?brandid=1&brandname=samsung&isactive=1。例如,我如何从URL获得brandid?

我会修改这个:

<script>

var app = angular.module('myApp', [])
    .controller("PostsCtrl", function($scope, $http) {
      $http.get('http://localhost/admin.brands/getJsonBrandAndEdit?brandid=XX').
        success(function(data, status, headers, config) {
          $scope.post = data;

        }).
        error(function(data, status, headers, config) {

        });
    });
</script>

1 个答案:

答案 0 :(得分:3)

您可能应该使用angular routerui router(建议使用后者)并传递当前在路径中的查询参数中传递的这些值,将更容易阅读然后来自你的控制器的值。

会是这样的

.controller('PostsCtrl',
    [       '$scope','$stateParams'
    function($scope , $stateParams ) {    
        // 
        $scope.brandId= $stateParams.brandid;
        ...

如果您不想这样做并且需要快速修复,这里可以使用......

<强> JavaScript的:

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

<强>用法:

var brandId = getParameterByName('brandid');

来源:How can I get query string values in JavaScript?