在CRUD SPA中使用PUT时,Angularjs JavaScript将加快速度

在CRUD SPA中使用PUT时,Angularjs JavaScript将加快速度,angularjs,rest,asp.net-web-api,single-page-application,Angularjs,Rest,Asp.net Web Api,Single Page Application,例如,看一看 当对Angularjs使用RESTful方法时,我遇到了更新/删除/等在没有硬刷新(F5)的情况下不会反映在列表中的情况。之所以发生这种情况,是因为save/update/delete比JavaScript运行下一个应该更新列表的命令所需的时间要长 app.controller('UserDetailCtrl', ['$scope', '$routeParams', 'UserFactory', '$location', function ($scope, $routeParams

例如,看一看

当对Angularjs使用RESTful方法时,我遇到了更新/删除/等在没有硬刷新(F5)的情况下不会反映在列表中的情况。之所以发生这种情况,是因为save/update/delete比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
    };
来自例如NETMVC,在这种情况下,我将从更新中返回项目列表(返回值)。搭建的WebAPI控制器是RESTful的,它不会从POST、PUT或DELETE返回任何内容

    // DELETE api/<controller>/5
    public **void** Delete(int id)
    {
        // delete...
    }
//删除api//5
公共**无效**删除(内部id)
{
//删除。。。
}
在Angularjs中,我可以设想几种方法来确保用户列表始终是最新的。(例如,在$scope中维护一个列表,并在POST/PUT/DELETE调用的同时对其进行修改,但这似乎很麻烦)


Angularjs中使用RESTful样式来确保列表具有准确的最新数据的最佳方法是什么?如果没有通用的方法,那么在这个示例应用程序中处理它的最佳方法是什么。

在更改路径之前,您可以等待AJAX请求完成:

UserFactory.update($scope.user, function() {
    $location.path('/user-list');
});

在这样的场景中,我使用了$http或$resource服务

  • $http
  • $resource
使用$http可以在成功回调中重定向


使用$resource可以在promise内重定向。$promise。然后

因为Web API控制器是RESTful的,所以它不会从POST、PUT或DELETE返回任何内容-RESTful并不是不返回任何内容的理由。感谢您的澄清,我想这只是Web API的默认设置。啊,回调。非常合身!