有没有办法有选择地限制 OrderBy 在 AngularJs 中的 ng-repeat 上的应用?
Is there a way to restrict the application of OrderBy on ng-repeat in AngularJs selectively?
在我的应用程序中,我迭代了一个数组,该数组的值绑定到文本框(基本上是输入类型="number")。即,
说,
<div ng-repeat="number in numbers|orderBy:'value'">
<input type="number" ng-model="number.value">
</div>
这个 Plnkr link - http://plnkr.co/edit/?p=preview&s=D7hhm2al6sOXMHwQ
演示我在说什么。
因此,只要我更改了文本框的值,就会重新排序。我不希望这种情况发生,因为这会让我的用户感到不适,他们必须搜索他们刚刚编辑的框。
我想要一个解决方案,在第一次创建 dom 时订购 ng-repeat,但在重新创建它们之前不会再次订购。我怎样才能做到这一点?请帮忙。
您可以通过在 controller
中对数组进行一次排序来实现,在本例中是通过注入 $filter
。显然,在加载 $scope.numbers
后执行此操作。
.controller('myController', function($filter, $scope){
$scope.numbers = $filter('orderBy')($scope.numbers, 'value')
})
在我的应用程序中,我迭代了一个数组,该数组的值绑定到文本框(基本上是输入类型="number")。即,
说,
<div ng-repeat="number in numbers|orderBy:'value'">
<input type="number" ng-model="number.value">
</div>
这个 Plnkr link - http://plnkr.co/edit/?p=preview&s=D7hhm2al6sOXMHwQ
演示我在说什么。
因此,只要我更改了文本框的值,就会重新排序。我不希望这种情况发生,因为这会让我的用户感到不适,他们必须搜索他们刚刚编辑的框。 我想要一个解决方案,在第一次创建 dom 时订购 ng-repeat,但在重新创建它们之前不会再次订购。我怎样才能做到这一点?请帮忙。
您可以通过在 controller
中对数组进行一次排序来实现,在本例中是通过注入 $filter
。显然,在加载 $scope.numbers
后执行此操作。
.controller('myController', function($filter, $scope){
$scope.numbers = $filter('orderBy')($scope.numbers, 'value')
})