Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用angular js从表中删除行?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何使用angular js从表中删除行?

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 =

我正在使用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 = '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.');
       });
   }
}
对jQuery
remove()
的引用似乎没有任何作用

变量表的值将为“表#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;