如何在 AngularJS $resource 中使用路径变量而不是请求参数
Posted
技术标签:
【中文标题】如何在 AngularJS $resource 中使用路径变量而不是请求参数【英文标题】:How to use path variable instead of request parameter with AngularJS $resource 【发布时间】:2012-07-20 08:08:24 【问题描述】:可能有一种简单的方法可以做到这一点,但我似乎无法找到方法。
当我点击下面显示的删除按钮时,角度会点击以下网址:
http://localhost:8080/rest/managedCourse?id=3
我怎样才能让它点击传递路径变量而不是这样的请求参数:
http://localhost:8080/rest/managedCourse/3
这是我的html:
<table>
<tr ng-repeat="course in page.content">
<td>course.title</td>
<td>course.description</td>
<td>course.creditValue</td>
<td><button ng-click="remove(course.id)">Delete</button></td>
</tr>
</table>
这是我的控制器:
function ManagedCourseController($scope, $resource)
var ManagedCourse = $resource("rest/managedCourse/:courseId", courseId:'@id');
$scope.page = ManagedCourse.getPage("page.page": "0", "page.size": "3", "page.sort": "title", "page.sort.dir": "asc");
$scope.create = function (managedCourse)
ManagedCourse.create(managedCourse);
$scope.remove = function (courseId)
ManagedCourse.remove(id:courseId);
【问题讨论】:
【参考方案1】:function ManagedCourseController($scope, $resource)
var ManagedCourse = $resource("rest/managedCourse/:courseId/:id",
courseId:'@id');
...
应该这样做
【讨论】:
那么 /:id 部分会被忽略吗?我只是想了解它是如何工作的。 虽然这似乎可行,但我也想知道它是如何工作的。 AngularJS documentation about $resource 似乎无法解释这种行为。它记录了有关多余值的文档作为查询参数添加,但没有记录如何跳过 URL 模板的部分 您将如何为自定义操作执行此操作? 我发现上面的例子令人困惑。可以假设@id 与第二个路径参数有关。 我成功地使用了带有路径参数的 $resource,而根本没有使用 courseId:'@id'。我想知道为什么我看到的文档和示例都夸耀这一点。以上是关于如何在 AngularJS $resource 中使用路径变量而不是请求参数的主要内容,如果未能解决你的问题,请参考以下文章
如何将标头动态传递给 angularjs 的 $resource
AngularJS $resource 在 Web Api 中搜索项目的工作示例
如何使用 AngularJS 的 $resource 和 spring rest 控制器获取布尔值