Javascript 如何使用angular js从表中删除行?
我正在使用AngularHTTP服务执行一个delet操作,它工作正常,在删除数据记录之后,我还必须从表中删除该行 下面是我的代码Javascript 如何使用angular js从表中删除行?,javascript,angularjs,Javascript,Angularjs,我正在使用AngularHTTP服务执行一个delet操作,它工作正常,在删除数据记录之后,我还必须从表中删除该行 下面是我的代码 $scope.DeleteSchedule = function (recordId) { var v =$window.confirm('Are you sure you want to delete ?'); if (v == true) { var row = '#row' + recordId; var table =
$scope.DeleteSchedule = function (recordId) {
var v =$window.confirm('Are you sure you want to delete ?');
if (v == true) {
var row = '#row' + recordId;
var table = 'table #tbl_Schedule_Delete tr ' + row;
$http({
url: '@Url.Action("DeleteSchedule", "Admin")',
method: "DELETE",
params: {
recordId: recordId
}
}).then(function mySuccess(response) {
alert('Row Deleted Successfully');
angular.element(document.querySelector(table)).remove();
//$('table #tbl_Schedule_Delete tr' + row).remove();
}, function myError(response) {
$window.alert('Warning! It failed.');
});
}
}
对jQueryremove()
的引用似乎没有任何作用
变量表的值将为“表#tbl_计划(u删除tr#第35行”
我检查了控制台日志,没有错误或警告。如何在angular JS中执行此操作
更新1:
下表是加价表
<tr id="row34" role="row" class="odd">
<td id="delete34" class="sorting_1">
<a id="deletebtn_34" ng-click="DeleteSchedule('34')"><i class="fa fa-times fa-lg" aria-hidden="true" style="color:#e90029"></i></a>
</td>
<td>34</td>
<td>11956</td>
<td>Tota Ram</td>
<td>04-10-2017</td>
<td>02-12-2017</td>
<td>Haryana</td>
<td>Badaun</td>
<td>03-11-2017</td>
</tr>
34
11956
托塔公羊
04-10-2017
02-12-2017
哈里亚纳
布道恩
03-11-2017
问题在于您的选择查询。选择器
表#tbl#U计划#U删除tr#第35行
实际匹配以下HTML结构:
<table>
<any-element id="#tabl_Schedule_Delete">
<tr>
<any-element id="#row35"></any-element>
</tr>
</any-element>
</table>
旁注:在
angular.element()内部使用document.querySelector()
是多余的。您可以简单地使用angular.element(table)
,因为angular.element
等同于使用$(选择器)
(在加载jquery的情况下,这实际上是完全相同的)我不会使用angular.element删除行,而是使用ng-if-of-ng-show来显示/隐藏行
<tr id="row34" role="row" class="odd" ng-show="!deleted[34]">
如何将数据加载到表中?如果从数组中加载,只需从数组中删除值,表将使用ng repeat
进行更新?要加载表中的数据吗?正在通过模型属性从MVC控制器返回表的HTML标记。您已尝试使用:$(table).remove()?虽然这可能无法解决您的问题,但在中使用querySelector
是多余的,因为angular.element
已经通过选择器查询元素(它基本上相当于$(选择器)
)。因此,angular.element(document.querySelector(table))
可以简化为angular.element(table)
这很聪明,与MVC完美结合,代码更少。小的添加:如果使用ng更好,因为您的整体页面速度和响应速度会更快。还需要添加一件事,要使用这种方法,我们需要在angular js控制器中初始化$scope.deleted=[],否则它将给出错误,无法设置未定义原因的属性'recordId',deleted未在控制器中定义为数组
var table = 'table#tbl_Schedule_Delete tr' + row;
// Notice the lack of whitespaces after 'table' and 'tr'
<tr id="row34" role="row" class="odd" ng-show="!deleted[34]">
scope.deleted[recordId] = true;