ngIf для перебора двух разных массивов - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть этот кусок кода:

<tr ng-repeat="row in someController.searchResults" 
    ng-class="{'selected': tableRow.selected}" 
    ng-click="selectRow(tableRow)" >

В этом фрагменте кода я перебираю массив searchResults.

Мне нужно добавить условие (хочу сделатьэто с ngIf ).

  • Если условие true Я переберу someController.searchResults
  • Если условие false Я хочу перебрать другоеНапример, массив: someController.someOtherSearchResults

Как мне этого добиться?

Ответы [ 3 ]

0 голосов
/ 25 сентября 2018

Пожалуйста, отфильтруйте данные перед передачей данных для просмотра.

if(condition){
    this.results=searchResults;
    else{
    this.results=someOtherSearchResults;
    }

И в шаблоне сделайте это просто:

   <tr ng-repeat="row in someController.results" 
        ng-class="{'selected': tableRow.selected}" 
        ng-click="selectRow(tableRow)" >

ИЛИ

<tr ng-if="condition" ng-repeat="row in 
someController.searchResults" 
ng-class="{'selected': tableRow.selected}" 
ng-click="selectRow(tableRow)" >

<tr ng-if="!condition" ng-repeat="row in 
someController.someOtherSearchResults" 
ng-class="{'selected': tableRow.selected}" 
ng-click="selectRow(tableRow)" >
0 голосов
/ 25 сентября 2018

Вы можете использовать обычный javascript в атрибуте ng-repeat, например, так:

<tr ng-repeat="row in (someController.importantBoolean ? someController.searchResults : someController.someOtherSearchResults)" 
        ng-class="{'selected': row.selected}" 
        ng-click="selectRow(row)" >
</tr>

См. Следующий слон для примера: https://plnkr.co/edit/Nxh9gVB9GDP5FaLVDGrS

0 голосов
/ 25 сентября 2018

Попробуйте,

<div ng-if="Your condition(True)"> <tr ng-repeat="row in 
someController.searchResults" 
ng-class="{'selected': tableRow.selected}" 
ng-click="selectRow(tableRow)" >

<div ng-if="Your condition(False)"> <tr ng-repeat="row in 
someController.someOtherSearchResults" 
ng-class="{'selected': tableRow.selected}" 
ng-click="selectRow(tableRow)" >

Надеюсь, это поможет вам.

...