【发布时间】:2017-07-24 12:37:52
【问题描述】:
我创建了一个角度函数,可以从 WebApi 获取数据。 此函数通过 $http.get 调用获取 json 格式的数据。
然后我从 response.data 对象接收数据。
dataService.GetDataFromApi.then(
function(response){
ctrl.items = response.data; },
function(error){});
在 html 视图页面中,我使用 ng-repeat 显示来自 response.data 的所有项目。
<table>
<tr ng-repeat="item in ControllerNama.items">
<td>{{ item.name }}</td>
</tr>
</table>
这很好。
现在,我需要在点击一个按钮进入 html 后刷新视图页面。当我单击此按钮时,其中一个项目将从另一个 api 中删除。我可以调用相同的 api 并刷新数据(有开销),或者我可以在不调用 refresh-api 的情况下从 ctrl.items 中删除数据(如果删除 api 返回 200 状态代码)。
最好的解决方案是什么?如何在不调用 GetDataFromApi 函数的情况下通过控制器刷新重复对象?
谢谢?
【问题讨论】:
-
尝试使用
$scope.$evalAsync(function(){ ctrl.items = response.data;}) -
我需要在点击一个按钮进入html后刷新视图页面你这是什么意思?
-
您可以直接从 ctrl.items 中对已删除的数据进行切片,或者在删除成功时调用 get 调用。
-
当我在视图中单击按钮时调用一个从数据库中删除项目的 api。然后,如果我收到 200 状态代码,我想从 ctrl.items 中删除项目,而不需要重新调用获取所有项目的 api(有开销)。比我想的...从 ctrl.items 中删除元素并更新视图。如果这不是正确的解决方案,我可以直接调用 get-all api。谢谢
标签: javascript angularjs asp.net-web-api angularjs-ng-repeat