首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng-flow上载文件-如何添加到ng-重复列表的顶部

ng-flow上载文件-如何添加到ng-重复列表的顶部
EN

Stack Overflow用户
提问于 2016-07-05 18:20:47
回答 2查看 495关注 0票数 0

我使用角ng流组件进行文件上传,除了一些细微差别外,它工作得很好。我希望能够将我试图上传的新文件放在列表的顶部,而不是列表的底部,这样用户就可以清楚地看到已经上传的最新文件。我尝试使用角顺序按命令,但这似乎不起作用,除非它是一个现有的列表相比,添加一个新的文件到列表。

基本上,我为每个文件创建一个新行,一旦它完成并打印出文件详细信息:

代码语言:javascript
复制
<tr ng-repeat="file in $flow.files | orderBy:'file.name'" ng-hide="file.isComplete()">

上传前的列表如下:

代码语言:javascript
复制
old1
old2
old3

然后我添加了一个新文件,我看到:

代码语言:javascript
复制
old1
old2
old3
new1

当我想:

代码语言:javascript
复制
new1
old1
old2
old3

对于添加到列表中的新项目,这可能更多地是关于使用角的ng重复功能的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-05 18:56:20

要使用orderBy筛选器,只需将属性放入筛选器中,如下所示:

代码语言:javascript
复制
<tr ng-repeat="file in $flow.files | orderBy: 'name'" ng-hide="file.isComplete()">

编辑

由于您希望按时间顺序对项目进行排序,因此应该会给出预期的结果:

代码语言:javascript
复制
<tr ng-repeat="file in files | orderBy: '$index': true">

下面是一个代码片段:

代码语言:javascript
复制
var app = angular.module('app', []);

app.controller('mainCtrl', function($scope) {
  $scope.files = [  
     {  
        "id":1,
        "name":"Old1"
     },
     {  
        "id":2,
        "name":"Old2"
     },
     {  
        "id":3,
        "name":"Old3"
     }
  ];

  var increment = 1;
  $scope.push = function (name) {
    $scope.files.push({ "id": increment + 3, "name": name + increment++ })
  }
});
代码语言:javascript
复制
<!DOCTYPE html>
<html ng-app="app">

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>      
</head>

<body ng-controller="mainCtrl">
<p>Before Filter:
<table>
  <tr ng-repeat="file in files">
    <td ng-bind="file.name"></td>
  </tr>
</table>
<hr />
<p>After Filter:
<table>
  <tr ng-repeat="file in files | orderBy: '$index': true">
    <td ng-bind="file.name"></td>
  </tr>
</table>
<hr>
<button type="button" ng-click="push('New')">Add new file</button>
</body>

</html>

票数 0
EN

Stack Overflow用户

发布于 2016-07-05 18:48:55

您可以使用像这样的过滤器来实现倒序打印arrai。

代码语言:javascript
复制
app.filter('reverse', function() {
return function(items) {
return items.slice().reverse();
 };
});

然后可以像这样使用:

代码语言:javascript
复制
  <tr ng-repeat="file in $flow.files | reverse" ng-hide="file.isComplete()">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38210113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档