【问题标题】:sorting of email-ID's using angular Filters使用角度过滤器对电子邮件 ID 进行排序
【发布时间】:2016-07-18 14:54:10
【问题描述】:

我是角度过滤器的新手。

如果我想通过应用过滤器对 ng-repeat 中的电子邮件 ID 进行排序。如何做到这一点?

例如:

xyz3@gmail.com、xyz1@gmail.com、xyz2@gmail.com 和 abc1@gmail.com 是我的电子邮件。

我想得到输出为

abc1@gmail.com , xyz1@gmail.com , xyz2@gmail.com , xyz3@gmail.com

就像在过滤器中按字母顺序和升序排序一样。

如果为此提供工作代码,我将不胜感激。

提前致谢。我应该在 OrderBy 中写什么:“?????????”

代码:

<div class="col-md-12 " ng-repeat="e in allEmails | orderBy:'??????'"> 
    //Display the emails here in sorted alphabetically ascending order.
</div>

【问题讨论】:

  • orderBy:'toString()'

标签: javascript angularjs


【解决方案1】:

试试这个,

var app = angular.module('myapp', []);

app.controller('MainCtrl', function($scope) {
 
  $scope.emails =  ['xyz3@gmail.com', 'xyz1@gmail.com', 'xyz2@gmail.com', 'abc1@gmail.com']
  
  
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>


<body ng-app="myapp" ng-controller="MainCtrl">
   
    <ul>
      <li ng-repeat="email in emails |orderBy:'toString()'">
        {{email}}
      </li>
    </ul>
  </body>

【讨论】:

  • 我这里有个奇怪的问题。我正在从 excel 文件中导出电子邮件。出于某种原因,它没有对所有电子邮件进行排序。谁能帮我解决这个问题
  • 例如,如果电子邮件是这样的 xyz1@gmail.com , xyz10@gmail.com, xyz100@gmail.com, xyz11@gmail.com, xyz12@gmail.com, xyz13@gmail.com .我得到的输出是 xyz100@gmail.com , xyz10@gmail.com , xyz1@gmail.com , xyz11@gmail.com 。 xyz12@gmail.com, xyz13@gmail.com
  • 嗨,Rejs。那么我们是否需要这样写 orderBy:natural('????')... 我应该在 ?????.. 你能帮我举个例子吗?非常感谢您提前
  • 那是因为 '@' 比任何数字都排在第一位。你应该做一个过滤器来排序'@'之前的字符串
【解决方案2】:

这是另一个创建 custom filter mySortFilter 的响应:

angular
  .module('myapp', [])
  .filter('mySortFilter', function() {
    return function(input) {
      return input.sort();
    }
  })
  .controller('MainCtrl', function($scope) {
    $scope.emails =  ['xyz3@gmail.com', 'xyz1@gmail.com', 'xyz2@gmail.com', 'abc1@gmail.com'] 
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="myapp" ng-controller="MainCtrl">
  <ul>
     <li ng-repeat="email in emails | mySortFilter">
        {{email}}
     </li>
  </ul>
</body>

【讨论】:

    【解决方案3】:

    orderBy: email
    您只需按变量名称排序。升序是默认值。 如果你的变量是$scope.email.addresses = []; 那么你必须像这样过滤:

    orderBy: email.addresses

    【讨论】:

    • 我的回答是:电子邮件
    猜你喜欢
    • 2015-07-21
    • 2015-05-17
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    相关资源
    最近更新 更多