【问题标题】:Is there a way to restrict the application of OrderBy on ng-repeat in AngularJs selectively?有没有办法选择性地限制在 AngularJs 中的 ng-repeat 上 OrderBy 的应用?
【发布时间】:2015-05-19 07:39:34
【问题描述】:

在我的应用程序中,我正在迭代一个数组,其值绑定到文本框(基本上输入 type="number")。即,

说,

<div ng-repeat="number in numbers|orderBy:'value'">
     <input type="number" ng-model="number.value">
</div>  

此 Plnkr 链接 - http://plnkr.co/edit/?p=preview&s=D7hhm2al6sOXMHwQ

证明我在说什么。

因此,一旦我更改了文本框的值,就会重新排序。我不希望这种情况发生,因为它让我的用户不得不搜索他们刚刚编辑的框。 我想要一个解决方案,在第一次创建dom时订购ng-repeat,但在重新创建它们之前不会再次订购。我怎样才能做到这一点?请帮忙。

【问题讨论】:

    标签: angularjs angularjs-ng-repeat angularjs-orderby


    【解决方案1】:

    您可以通过在controller 中订购一次数组来实现,在这种情况下通过注入$filter。显然,在加载 $scope.numbers 之后执行此操作。

    .controller('myController', function($filter, $scope){
        $scope.numbers = $filter('orderBy')($scope.numbers, 'value')
    })
    

    【讨论】:

    • 非常感谢。工作得很好:)
    • 你确定吗?我刚刚将它添加到你的 pluncker 中,它对我不起作用
    • @Eagle1 代码并不是为了在 plunkr 中即插即用,只是为了演示如何在加载时对数组进行排序,然后不让它动态重新排序。该方法的应用留给读者作为实验。
    • 哦我现在明白了代码,我读得太快了。其实可以即插即用,只需要去掉 HTML 中的 orderBy
    猜你喜欢
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 2014-07-18
    • 2017-01-12
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 2016-05-31
    相关资源
    最近更新 更多