我有一个像这样定义的AngularJS $资源:
- var Menus = $resource('http://cafe.com/api/menus');
和一个RESTful API.所以,当我在Menus上做GET时,我得到了回复:
- <cafe>
- <collection href="http://cafe.com/api/menus" type="menus">
- <template>
- <data name="Name" prompt="Menu name" />
- </template>
- <items>
- <item href="http://cafe.com/api/menus/1">
- <link href="http://cafe.com/api/menus/1/ingredients" rel="ingredients" />
- <data name="Name" prompt="Menu name">Morning</data>
- </item>
- <item href="http://cafe.com/api/menus/2">
- <link href="http://cafe.com/api/menus/2/ingredients" rel="ingredients" />
- <data name="Name" prompt="Menu name">Happy Hour</data>
- </item>
- </items>
- </collection>
- </cafe>
解决方法
假设您已经从XML转换为Angular托管的JavaScript对象数组,您可以使用它来呈现您的对象:
- <tr ng-repeat="cafe in cafes">
- <td>{{cafe.name}}</td>
- <td>
- <button class="btn" ng-click="deleteCafe($index,cafe)">Delete</button>
- </td>
- </tr>
在你的控制器中你可以这样做:
- function ListCtrl($scope,$http,CafeService) {
- CafeService.list(function (cafes) {
- $scope.cafes = cafes;
- });
- $scope.deleteCafe = function (index,cafe) {
- $http.delete(cafe.self).then(function () {
- $scope.cafes.splice(index,1);
- },function () {
- // handle error here
- });
- }
- }
看,没有客户端创建的URL!