如何在http POST和DELETE之后更新模型

时间:2014-11-08 16:40:33

标签: angularjs rest

我开始学习Angularjs。

我成功获取数据并将其分配给模型。

coreService.getCompanies().success(function(data) {
                $scope.companies = data.companies;
            });

但是,我不清楚,当我插入或删除实体时如何更新模型。

categoryService.bulkDeleteCategories(companyId, selectedCategories).success(function(data) {
            console.log('success category deletion');
            $modalInstance.close('Success');
        }).error(function(data, status) {
            console.log('There was an error deleting categories' + data);

        });

在上面的代码片段中,我通过对话框插入实体。请求返回200 OK。但是我现在如何更新模型呢?我一直在提供刷新链接,从服务器重新获取数据并更新模型,但我相信必须有更好的方法。

2 个答案:

答案 0 :(得分:2)

QUERY(获取所有项目)

将范围模型替换为您返回的数据,与您一样。 ($scope.companiesdata.companies

INSERT

在您的成功处理程序中,通过push将上传的对象本地添加到您的模型中。这样,网站上的模型只会在数据库更新时更新(即请求成功)

DELETE

在您的成功处理程序中,也可以通过splice(index, 1)从本地模型中删除该对象。同样,只有当数据库删除了项目(也就是请求成功)时,您的网站模型才会更新

答案 1 :(得分:1)

您没有提供足够的代码来提供完整的答案,但是在您的成功函数中添加以下内容

$scope.companies[companyID].categories = selectedCategories

换句话说,$ scope是你的模型,你可以像调整任何其他变量一样进行调整。更新模型后,假设您在服务中使用了$http,那么您的屏幕数据将准确刷新。