如何在angularjs中获取URL的ID? 我正在使用Restangular与REST API进行通信

问题描述 投票:2回答:1

我正在使用Restangular进行后端调用,并且只要URL提供如下数据,一切都可以正常工作:

如果我点击http://mysite/responses/则响应看起来像

[
    {"fname":"some guy",
     "lname":"some name",
     "dob":2091,
     "job":"mgr",
     "id":"100"
     },
     {"fname":"another guy",
     "lname":"anpther name",
     "dob":1991,
     "job":"worker",
     "id":"101"
     },
     {"fname":"someone",
     "lname":"some name",
     "dob":1997,
     "job":"dev",
     "id":"102"
     },
     {"fname":"some guy2",
     "lname":"some name",
     "dob":2091,
     "job":"sec",
     "id":"103"
     }
] 

一切正常

它包装在一个数组中,我的Restangular URL看起来像

RestangularProvider.setBaseUrl('http://mysite/responses/');
RestangularProvider.setRestangularFields({ id: 'id' });

而且一切正常

现在,我解构了后端,API以以下格式返回了数据

http://mysite/responses/100

{
    fname:"some guy",
     lname:"some name",
     dob:2091,
     job:"mgr",
     id:"100"
}

http://mysite/responses/101

{
    fname:"another guy",
     lname:"another name",
     dob:1991,
     job:"sec",
     id:"101"
}

http://mysite/responses/102

{
    fname:"some name",
     lname:"some person",
     dob:1091,
     job:"sec",
     id:"102"
}

http://mysite/responses/103

{
    fname:"a guy",
     lname:"person name",
     dob:1998,
     job:"dev",
     id:"103"
}

现在如果我打

http://mysite/responses/

我得到以下回应

http://mysite/responses/100
http://mysite/responses/101
http://mysite/responses/102
http://mysite/responses/103
http://mysite/responses/104

如您所见,该ID会附加到网址中,我需要获取此ID,进行一次Restangular调用并获取数据。 我如何遍历这多个http调用,获取id并将其放在Angular中。 我认为我没有为Restanglar正确构建BaseURl,因为我不确定如何获取ID。 谢谢您的帮助

javascript angularjs http restangular
1个回答
0
投票

您正在寻找的是routeParams

https://docs.angularjs.org/api/ngRoute/service/ $ routeParams

这与路线一起使用:

https://docs.angularjs.org/api/ngRoute/service/ $ route

例如:

$routeProvider.when('/Book/:bookId', {
    templateUrl: 'book.html',
    controller: function($scope, $routeParams) {
        console.log($routeParams.bookId);
    })
});
© www.soinside.com 2019 - 2024. All rights reserved.