Как изменить значение данных таблицы, зависит от условия внутри ng-repeat |AngularJs - PullRequest
0 голосов
/ 21 мая 2018

У меня есть таблица заказов, и в зависимости от типа заказа я хочу изменить значение td.ниже мое представление:

<tr ng-repeat="invoice in allInvoices">
    <td>{{invoice.order_type}}</td>
    <td>{{invoice.order_date}}</td>
    <td>{{invoice.totalPrice}}</td>
    <td>{{invoice.client_name}}</td>
</tr>

я пробовал:

<td ng-if="invoice.order_type='M'">Mobile</td>
<td ng-if="invoice.order_type='A'">Accessories</td>

, но это не соответствует моему представлению таблицы, так как оно покажет два td, в то время как я хочу сохранитьна один td, но изменение его значения зависит от типа заказа.

Заранее спасибо!

Ответы [ 4 ]

0 голосов
/ 21 мая 2018

Вы можете просто использовать выражение вроде

{{invoice.order_type == 'M' ? 'Mobile' : invoice.order_type == 'A' ? 'Accesories' : 'other'}}

, схема следующая:

{{expression ? ifTrue : otherExpression ? ifTrue : anotherExpression ? ifTrue : ifFalse}}
0 голосов
/ 21 мая 2018

Используйте троичный оператор :

<td>{{invoice.order_type=='M'?'Mobile':'Accessories'}}</td>

ИЛИ поиск с свойством свойства :

<td>{{orderTypeName[invoice.order_type]}}</td>
$scope.orderTypeName = {
    'M': 'Mobile',
    'A': 'Accessories',
};

Thisизбегает использования ng-if с последующей дочерней областью.

0 голосов
/ 21 мая 2018

Попробуйте оператор сравнения == вместо оператора присваивания =

<td ng-if="invoice.order_type=='M'">Mobile</td>
<td ng-if="invoice.order_type=='A'">Accessories</td>
0 голосов
/ 21 мая 2018

Try

<td ng-if="invoice.order_type==='M'">Mobile</td>
<td ng-if="invoice.order_type==='A'">Accessories</td>

= - присвоение значения, где, как внутри ng-if, всегда есть условный оператор, т. Е. Используйте ===

...