2016-12-29 4 views
1

У меня есть список предметов с ценой, и у меня есть опция выбора наверху, теперь я хочу отобразить элемент, который имеет цену больше, чем выбранная опция. этот мой код, если я выберу 10000, тогда я получу все предметы более 10000, но я также получаю несколько предметов lessthan 10000, например: 6520, 9200 и т. д. я думаю, что его сравнение только 1-го числа, PLZ, дайте мне знать, где я иду не так. спасибо.ionic 2: Фильтрация

 <ion-item> 
     <ion-label>Price</ion-label> 
     <ion-select [(ngModel)]="pricefilter"> 
      <ion-option value="1000">more than 1000</ion-option> 
      <ion-option value="5000">more than 5000</ion-option> 
      <ion-option value="10000">more than 10000</ion-option> 
      <ion-option value="15000">more than 15000</ion-option> 
      <ion-option value="20000">more than 20000</ion-option> 
     </ion-select> 
     </ion-item> 

    <div *ngFor = ' let content of data ' > 
     <ion-card *ngIf=" ( pricefilter=='' || pricefilter <= content.price) " > 
     <ion-card-content>  
      <h1> {{ content.price }} 
     </ion-card-content> 
     </ion-card> 
    </div> 
+2

Может ли быть, что ваш фильтр, цена или оба являются строками? Попробуйте использовать Number (pricefilter) и Number (content.price), чтобы убедиться, что вы сравниваете числа. –

ответ

2

я попробовать этот

<ion-card *ngIf="(pricefilter=='' || pricefilter <= content.price*1)"> 

content.price * 1 это сделает его числом, это будет вилкой штраф

+1

спасибо, что это сработало именно так, как я хотел :) – inoxe

+0

почему вы просто отправляете такой же ответ !!!!!!!? –

2

быстрый способ заключается в следующем:

<ion-card *ngIf="(pricefilter=='' || pricefilter <= content.price*1)"> 

но вы можете преобразовать content.price в TS файле

+0

спасибо, что это сработало. :) – inoxe