Javascript 角度预弯至顶部,ng重复一次

Javascript 角度预弯至顶部,ng重复一次,javascript,angularjs,sorting,angularjs-ng-repeat,Javascript,Angularjs,Sorting,Angularjs Ng Repeat,我正在尝试使用ng repeat将对象添加到列表的顶部,而不是底部。我认为这样做的方法是unshift或splice,索引为0,但顶部仍然有一个讨厌的对象 数据结构: $scope.categories = [ {...}, {...}, {...} ] 添加对象函数: $scope.addObj = function () { $scope.categories.unshift({ category : '' }); }; 它在HTML列表中的显示方

我正在尝试使用
ng repeat
将对象添加到列表的顶部,而不是底部。我认为这样做的方法是
unshift
splice
,索引为0,但顶部仍然有一个讨厌的对象

数据结构:

$scope.categories = [
    {...}, {...}, {...}
]
添加对象函数:

$scope.addObj = function () {
    $scope.categories.unshift({
        category : ''
    });
};
它在HTML列表中的显示方式:

  • 对象G
  • 对象K
  • 对象M
  • 对象P
单击添加对象:在预结束后,对象在HTML列表中的显示方式:

  • 对象G
  • 新对象
  • 对象K
  • 对象M
  • 对象P
console.log
”编辑了我的
$scope.categories
数组,并验证新对象是否已添加到数组索引0处。这是怎么回事

我最初尝试了
拼接
,结果相同:

$scope.addObj = function () {
    $scope.categories.splice(0, 0, {
        category : ''
    });
};
HTML:


在ng重复之前添加输入表单

<tr>
    <td>
        <div class="form-group" ng-class="{ 'has-error' : categoryForm.username.$invalid && !categoryForm.email.$pristine }">
            <input type="text" name="category" placeholder="New Category" class="form-control" ng-model="c.category" required>
        </div>
    </td>
</tr>

<tr ng-repeat="c in categories | orderBy:sortType:sortReverse | filter:searchQuestions track by $index">
   <td>
      {{c.category}}
   </td>
</tr>

{{c.category}}
这是一个示例,请尝试基于此修改代码


categories.unshift将不保证在第一个索引中显示新项目,因为您已应用orderBy筛选器。

您应该将代码更改为此

$scope.addObj = function () {
 var c = $scope.categories.length + 1;
 var category = new String('category' + c)
$scope.categories.splice(0, 0, category);};

删除ng repeat中的“orderBy:sortType:sortReverse”后是否尝试过?@MuthukannanKanniappan这会修复它,但我需要它,以便允许用户按字母顺序排序或按字母顺序反转Unshift适用于我:
$scope.addObj = function () {
 var c = $scope.categories.length + 1;
 var category = new String('category' + c)
$scope.categories.splice(0, 0, category);};