代码之家  ›  专栏  ›  技术社区  ›  Ali

如何更改表数据的值取决于ng repeat_angularjs中的条件

  •  0
  • Ali  · 技术社区  · 6 年前

    我有一个订单表,根据我想要更改的订单类型 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 回复  |  直到 6 年前
        1
  •  1
  •   Giuliano    6 年前

    你可以用这样的表达

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

    方案如下:

    {{expression ? ifTrue : otherExpression ? ifTrue : anotherExpression ? ifTrue : ifFalse}}
    
        2
  •  1
  •   georgeawg    6 年前

    使用 ternary operator :

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

    或查找 property accessor :

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

    这样可以避免使用 ng-if 与后续的子范围。

        3
  •  0
  •   Shashank Vivek    6 年前

    尝试

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

    = 是值分配,其中与内部一样 ng-if 总是有条件语句,即使用 ===

        4
  •  -1
  •   user7040361    6 年前

    Try比较运算符 == 而不是赋值运算符 =

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