将URL参数传递给AngularJS控制器?

时间:2014-11-09 00:33:58

标签: javascript angularjs

在我的应用中我{m} reading an URL parameter我希望传递给我的Angular控制器,然后加载JSON文件。

例如index.html?id=1234应该使控制器加载data/1234.json

我当前的代码会导致进样器错误:

var id = getUrlParam('id')

app.controller('myController', function ($scope, $http, id) {
  $http.get("data/"+id+".json").then(function(res) {
      $scope.posts = res.data
  })
});

我做错了什么?

2 个答案:

答案 0 :(得分:2)

$routeParams就是您所需要的。 Basicaly获取$routeParams.id

之类的参数

其他信息 - https://docs.angularjs.org/api/ngRoute/service/$routeParams

答案 1 :(得分:-1)

试试这个:

var getParameterByName = (function(a) {
    if (a == "") return {};
    var b = {};
    for (var i = 0; i < a.length; ++i)
    {
        var p=a[i].split('=', 2);
        if (p.length == 1)
            b[p[0]] = "";
        else
            b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
    }
    return b;
})(window.location.search.substr(1).split('&'))
var id = getParameterByName["id"];