Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 什么是重新排列UI列表的快速方法?_Angularjs_Html_Typescript_Angular - Fatal编程技术网

Angularjs 什么是重新排列UI列表的快速方法?

Angularjs 什么是重新排列UI列表的快速方法?,angularjs,html,typescript,angular,Angularjs,Html,Typescript,Angular,我正在使用Angular 2&Typescript 在我的项目中,我展示了一个简单的json对象列表,html如下所示: <div> <!-- Present List Button --> <button md-button (click)="showList()" class="md-primary" title="show list">Cropping</button> &l

我正在使用Angular 2&Typescript

在我的项目中,我展示了一个简单的json对象列表,html如下所示:

<div>
  <!-- Present List Button -->
  <button md-button
          (click)="showList()"
          class="md-primary"
          title="show list">Cropping</button>
</div>


<md-content>
  <div *ngIf="showList">
  <div class="list-bg"  *ngFor="#list of lists | async">
    ID: {{list.id}} <p></p> Number of Items: {{list.numberOfItems}}
  </div>
  </div>
</md-content>

种植
ID:{list.ID}项目数:{{list.numberOfItems}
非常简单的列表

现在我需要某种方法来重新排列这个列表,并将列表数组设置为新的顺序

我正在寻找一种方法,用户可以根据自己的意愿对列表重新排序,比如按优先级更改列表

有人能帮我找到一个方法,将快速实施,将工作良好

(我查看了一些拖放库,但我使用的是Angular 2(2.0.0-beta.15)的特定版本,它们都不支持。)


谢谢你

为此,您必须使用angular 2 pipe查看更多信息

按管道订购

按升序查看


ID:{list.ID}项目数:{{list.numberOfItems}
按降序查看


ID:{list.ID}项目数:{{list.numberOfItems}

为此,您必须使用angular 2管道查看更多信息

按管道订购

按升序查看


ID:{list.ID}项目数:{{list.numberOfItems}
按降序查看


ID:{list.ID}项目数:{{list.numberOfItems}

try:lists.reverse();try:lists.reverse();]我在寻找一种方法,用户可以根据自己的意愿对列表进行重新排序,比如按优先级更改列表,我可以根据你的建议这样做吗?是的,你可以,但在这种情况下,你必须将对象而不是id作为字符串传递,然后从该字符串中获得要排序的对象属性的名称,或者你可以这样做:orderBy:true==false?'id':'numberOfItems']我正在寻找一种方法,用户可以根据自己的意愿对列表重新排序,像按优先级更改列表一样,我可以根据您的建议执行此操作吗?是的,您可以,但在这种情况下,您必须将对象而不是id作为字符串传递,并从该字符串中获得要排序的对象属性的名称,或者您可以按以下方式执行:true==false?'id':'numberOfItems'
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
  name: "orderBy",
  pure: false,
})

export class OrderBy implements PipeTransform {
  transform(array: any, args: any) {
    if (array != null) {
      if (array) {
        let orderByValue = args;
        let byVal = 1
        if (orderByValue.charAt(0) == "!") {
          byVal = -1
          orderByValue = orderByValue.substring(1)
        }


        array.sort((a: any, b: any) => {
          if (a[orderByValue].toString().toLowerCase() < b[orderByValue].toString().toLowerCase()) {
            return -1 * byVal;
          } else if (a[orderByValue].toString().toLowerCase() > b[orderByValue].toString().toLowerCase()) {
            return 1 * byVal;
          } else {
            return 0;
          }
        });
        return array;
      }
    }
  }
}
import {Filter} from '../pipes/filter';
import {OrderBy} from '../pipes/orderBy';

@Component({
  selector: 'category',
  templateUrl: '../views/category.component.html',
  directives: [ROUTER_DIRECTIVES],
  providers: [SetupService, HTTP_PROVIDERS],
  pipes: [ OrderBy]
})
<md-content>
  <div *ngIf="showList">
  <div class="list-bg"  *ngFor="#list of lists | async | orderBy:'id'">
    ID: {{list.id}} <p></p> Number of Items: {{list.numberOfItems}}
  </div>
  </div>
</md-content>
<md-content>
  <div *ngIf="showList">
  <div class="list-bg"  *ngFor="#list of lists | async | orderBy:'!id'">
    ID: {{list.id}} <p></p> Number of Items: {{list.numberOfItems}}
  </div>
  </div>
</md-content>