2016-06-01 5 views
2

私はJSONファイルから1つのリストを持つページを持っています。私がやりたいことは、能動的に注文を追加することです。 @Pipeを使用する必要がある場合や、より簡単な方法がある場合、私はまだ理解していません。 私はモーダルページでそれを行う予定です。 おかげさまで、ありがとうございます。 modalpage.html:イオンリスト2

<ion-toolbar danger> 
    <ion-buttons start> 
    <button (click)="close()"> 
     <ion-icon ios="ios-close" md="md-close"></ion-icon> 
    </button> 
    </ion-buttons> 
    <ion-title text-center> 
    Ajustes 
    </ion-title> 
    <ion-buttons end> 
    <button (click)="applyFilters()"> 
     <ion-icon ios="ios-checkmark" md="md-checkmark"></ion-icon> 
    </button> 
    </ion-buttons> 
</ion-toolbar> 
<ion-content padding class="rojo"> 
    <h2 text-center>Ordenar resultados por:</h2> 
</ion-content> 

modalpage.js

import {Page, NavController,ViewController} from 'ionic-angular'; 

@Page({ 
    templateUrl: 'build/pages/ajustes-listado/ajustes-listado.html', 
}) 
export class AjustesListadoPage { 
    static get parameters() { 
    return [[NavController],[ViewController]]; 
    } 

    constructor(nav, viewController) { 
    this.nav = nav; 
    this.viewCtrl = viewController; 
    } 

    close(data) { 
    this.viewCtrl.dismiss(data); 
    } 
    applyFilters(){ 
    console.log('aplicando filtros a la lista'); 
    this.close(); 
    } 
} 

するlist.html

<ion-navbar *navbar danger> 
    <ion-title text-center>Listado</ion-title> 
    <ion-buttons start *ngIf="buscar==false"> 
    <button (click)="search()"> 
     <ion-icon ios="ios-search" md="md-search"></ion-icon> 
    </button> 
    </ion-buttons> 
    <ion-buttons end> 
    <button (click)="options()"> 
     <ion-icon ios="ios-options" md="md-options"></ion-icon> 
    </button> 
    </ion-buttons> 
</ion-navbar> 
<ion-content class="listado"> 
     <ion-list [virtualScroll]="vets"> 
     <button ion-item text-wrap *virtualItem="let vet" (click)="goToDetails(vet)"> 
      <ion-avatar item-left> 
       <!-- <ion-img [src]="vet.img || defaultImg"></ion-img> --> 
       <img src="{{vet.img}}" onError="this.src='./files/gmaps.png';" /> 
      </ion-avatar> 
      <h2>{{vet.nombre}}</h2> 
      <p>Direccion: {{vet.direccion}}</p> 
     </button> 
    </ion-list> 
</ion-content> 

list.js

import {DetallesPage} from '../detalles/detalles'; 
import {OnInit} from '@angular/core'; 
import {Page, NavController, Platform, NavParams, Modal} from 'ionic-angular'; 
import {MiServicio} from '../../providers/mi-servicio/mi-servicio'; 
import {AjustesListadoPage} from '../ajustes-listado/ajustes-listado'; 

@Page({ 
    templateUrl: 'build/pages/listado/listado.html', 
    providers:[MiServicio] 
}) 
export class ListadoPage { 
    static get parameters() { 
    return [[NavController],[Platform],[MiServicio]]; 
    } 

    constructor(nav,platform, miServicio) { 
    this.nav = nav; 
    this.platform = platform; 
    this.miServ = miServicio; 
    this.ngOnInit(); 
    } 

    ngOnInit() { 
    this.miServ.getVets().subscribe(
     data => this.vets = data 
    ); 
    }  
} 

答えて

2

Angular2 ORDERBYフィルタを提供していません。 (現在は "パイプ")のような角度r 1はそうです。

角度は、リストのフィルタリングや並べ替えにはパイ​​プが付属していません。 Angular 1に精通している開発者は、これをフィルタとorderByとして認識しています。全く同等物は角2
ではありません参照してください。https://angular.io/docs/ts/latest/guide/pipes.html#!#no-filter-pipe

あなたのコンポーネント内のアイテムをソートする必要があります。最良の選択肢は、常にサーバー側で並べ替えることですが、項目がほんの少数であるか、クライアント側で本当にソートしたい場合は、array.sort()メソッドを使用できます。

例とドキュメント:

あなたはJSONファイル内のリストを持っているので、それは永続的なデータがないと述べ?
これを見てください:Sorting with map
これはあなたにとって最良の選択肢だと思います。

関連する問題