Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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
AngularJS表格在编辑模式下停止排序_Angularjs - Fatal编程技术网

AngularJS表格在编辑模式下停止排序

AngularJS表格在编辑模式下停止排序,angularjs,Angularjs,我有一个带有CRUD操作和可排序标题的AngularJS表。当我将新行添加到表格中时,行在跳跃,表格在编辑模式下得到排序 我想在编辑模式下停止排序,只应在保存新行后进行排序。我在网上搜索修复此问题,但没有任何帮助 以下是HTML文件: <thead> <tr> <td><input type="text" ng-model="main.search.Data1" id="myInput" placeholder="sear

我有一个带有CRUD操作和可排序标题的AngularJS表。当我将新行添加到表格中时,行在跳跃,表格在编辑模式下得到排序

我想在编辑模式下停止排序,只应在保存新行后进行排序。我在网上搜索修复此问题,但没有任何帮助

以下是HTML文件:

<thead>   
    <tr>
         <td><input type="text" ng-model="main.search.Data1" id="myInput" placeholder="search for Data1..."/></td>
         <td><input type="text" ng-model="main.search.Data2" id="myInput" placeholder="search for Data2..."/></td>
       </tr>

       <tr class="table_header" style="background-color: blue;">
          <th><a href="#" ng-click="orderByField='data1'; reverseSort = !reverseSort"> Data1 <span ng-show ="!reverseSort">^</span><span ng-show="reverseSort">v</span></th>
          <th><a href="#" ng-click="orderByField='data2'; reverseSort = !reverseSort"> Data2</th>
       </tr> 
</thead>

<tbody>
   <tr ng-repeat=" code in main.Table | orderBy: Predicate | orderByField:reverseSort | filter:main.search"></tr>

   <script type="text/ng-template" id="dispay">
     <td>{{code.data1}}</td>
     <td>{{code.data2}}</td> 
   </script>

   <script type="text/ng-template" id="edit">
     <td><input type="text" ng-model="code.data1" class"form-control input-sm"/></td>
     <td><input type="text" ng-model="code.data2" class"form-control input-sm"/></td>
   </script>
</tbody>

该行为是正确的,因为在addNew上,您在apply cycle中添加了1条空记录,然后将重新对列表排序

你有两条路要走: 1) 添加新项目时,创建sperate对象,并在提交时将其添加到列表中:

 $scope.addNew = function(data) {
  $scope.newItem ={
    data1: "",
    data2: ""
  };
};

$scope.save = function() {
  $scope.table.push($scope.newItem);
}; 
这样的话,就有了更多的关注点,而不是把主要的清单混在一起

或者,如果您仍然希望直接将其添加到主列表中,我不建议您实现自定义过滤器,它始终将空数据保留在谓词方法的顶部

<tr class="table_header" style="background-color: blue;">
          <th><a href="#" ng-click="orderByField='data1'; reverseSort = !reverseSort" ng-disabled="setTrueFalse"> Data1 <span ng-show ="!reverseSort">^</span><span ng-show="reverseSort">v</span></th>
          <th><a href="#" ng-click="orderByField='data2'; reverseSort = !reverseSort" ng-disabled="setTrueFalse"> Data2</th>
       </tr> 
使用禁用的ng。。如果不希望对值进行排序,请将其设置为true,反之亦然

<tr class="table_header" style="background-color: blue;">
          <th><a href="#" ng-click="orderByField='data1'; reverseSort = !reverseSort" ng-disabled="setTrueFalse"> Data1 <span ng-show ="!reverseSort">^</span><span ng-show="reverseSort">v</span></th>
          <th><a href="#" ng-click="orderByField='data2'; reverseSort = !reverseSort" ng-disabled="setTrueFalse"> Data2</th>
       </tr> 
$scope.setTrueFalse = true/false