【发布时间】:2014-09-30 00:05:25
【问题描述】:
以a RESTful CRUD SPA with angularjs 为例。
当使用 Angularjs 的 RESTful 方法时,我遇到了更新/删除/等的情况。没有硬刷新 (F5) 不会反映在列表中。这是因为保存/更新/删除花费的时间比 JavaScript 运行下一个应该更新列表的命令所花费的时间长。
app.controller('UserDetailCtrl', ['$scope', '$routeParams', 'UserFactory', '$location',
function ($scope, $routeParams, UserFactory, $location) {
// callback for ng-click 'updateUser':
$scope.updateUser = function () {
UserFactory.update($scope.user); // Before this is done
$location.path('/user-list'); // this has already fetched the (outdated) list
};
来自例如.NET MVC 在这种情况下,我会从更新中返回项目列表(返回值)。搭建的 Web API 控制器是 RESTful 的,它不会从 POST、PUT 或 DELETE 返回任何内容。
// DELETE api/<controller>/5
public **void** Delete(int id)
{
// delete...
}
在 Angularjs 中,我可以想象几种方法来确保用户列表始终是最新的。 (例如在 $scope 中维护一个列表,并与 POST/PUT/DELETE 调用同时修改它,但看起来很麻烦)
Angularjs 中使用 RESTful 风格来确保例如的最佳方法是什么?列表是否包含准确的最新数据?如果没有通用方法,那么在此示例应用中处理它的最佳方法是什么。
【问题讨论】:
-
由于 Web API 控制器是 RESTful,它不会从 POST、PUT 或 DELETE 返回任何内容 - RESTful 没有理由不返回任何内容。
-
感谢您的澄清,我想这只是 Web API 脚手架的默认设置。
标签: angularjs rest asp.net-web-api single-page-application