我正在使用angularjs。
我在我的API中进行简单的$ http.delete方法调用,用于从网格表中删除行:
我的控制器如下所示:
$scope.removeRow = function(detail, index){
var delRes = $http.delete($scope.appUrl + detail.id);
delRes.success(function (data, status, headers, configs) {
console.log(data);
delete $scope.appDetails[index].id;
});
delRes.error(function (data, status, headers, configs) {
console.log(data);
});
};
现在,API调用工作正常,但我仍然可以在UI上的网格中看到记录。 当我刷新页面时,我看不到。 任何原因。
请帮忙。
答案 0 :(得分:0)
在我看来,您只是删除了appDetails索引行的id属性。
尝试删除整个appDetails [index]。
如果这不是你的问题,你可以在调用之前尝试使用$ scope。$ apply()并进行适当的检查。适用于异步调用。
如果您正在创建AngularJS服务(例如套接字) 应该有一个$ scope。$ apply()它会触发一个回调。
$ scope。$ apply()应该尽可能接近async事件绑定 可能。 https://github.com/angular/angular.js/wiki/When-to-use- $范围。$申请()
答案 1 :(得分:0)
您可以使用splice
删除所选索引的主题请试试这个
fun_mean <- function(x){return(round(data.frame(y=mean(x),label=mean(x,na.rm=T)),digit=2))}
foo <- qplot(Interest, Scored.Probabilities, data = dataset1, geom = "boxplot");
foo <- foo+stat_summary(fun.y = mean, geom="point",colour="darkred",size=3)+stat_summary(fun.data = fun_mean,geom="text", vjust=-0.7)
ggsave(foo, file="Interest.png", width=20, height=7)
重新绑定|重新加载$scope.removeRow = function(detail, index){
var delRes = $http.delete($scope.appUrl + detail.id);
delRes.success(function (data, status, headers, configs) {
console.log(data);
var index = $scope.appDetails.indexOf(detail);
$scope.appDetails.splice(index, 1);
});
delRes.error(function (data, status, headers, configs) {
console.log(data);
});
};
值
$scope.appDetails