使用ng-switch如何使用ng-repeat工作?

时间:2015-01-22 02:35:43

标签: javascript angularjs angularjs-ng-repeat ng-switch

http://plnkr.co/edit/GQ40yelDbLMpRyZqYpNB?p=preview

或任何其他ng

在上面的例子中,我有一个包含一些比特币交易的模型,一些是传入的,一些是传出的,两者都有不同的图标。

vm.transactions = [
  {
    type: 'incoming',
    comment: 'Recieved from multiple addresses',
    time: '10 hours ago',
    amount: 0.00498623
  },
  {
    type: 'incoming',
    comment: 'Recieve from 1MgZLyz6d8djEqe68XoPpsjx9BFQyVAtXN',
    time: '12 hours ago',
    amount: 0.003
  },
  {
    type: 'outgoing',
    comment: 'Sent to 17dPAMzZiosQYVty6ES4KSWN8R8XFcxShH',
    time: 'Jan 15th 2015',
    amount: 0.01
  },
  {
    type: 'incoming',
    comment: 'Recieved from multiple addresses',
    time: 'Jan 14th 2015',
    amount: 0.02874
  },
  {
    type: 'outgoing',
    comment: 'Sent to 1GS9E86Y3mhK7Qwm1vqvgCmpE5u6MMxPML',
    time: 'Jan 12th 2015',
    amount: 0.064904
  }
];

我找到了关于ng-switch

的这些文档
  

用法

<ANY ng-switch="expression">
  <ANY ng-switch-when="matchValue1">...</ANY>
  <ANY ng-switch-when="matchValue2">...</ANY>
  <ANY ng-switch-default>...</ANY>
</ANY>

所以这就是我现在正在尝试的,但图标没有显示出来:

<tr class="row_body"
    ng-repeat="trans in transactions">

    <td class="td_icon" ng-switch="{{trans.type}}">
        <div ng-switch-when="incoming" class="icon-download">↓</div>
        <div ng-switch-when="outgoing" class="icon-upload">↑</div>
    </td>
    <td class="td_comment">
        {{ trans.comment }}
        <p class="date">{{ trans.time }}</p>
    </td>
    <td class="td_amount green">{{ trans.amount }}</td>
</tr>

enter image description here

你知道我哪里出错吗?或者我需要使用另一个ng吗?

2 个答案:

答案 0 :(得分:5)

更改

<td class="td_icon" ng-switch="{{trans.type}}">

<td class="td_icon" ng-switch="trans.type">

术语expression有时会在角度文档中混淆

Working Plunker

答案 1 :(得分:3)

您想删除此行上的花括号(angular会为您评估ng-switch的值):

<!-- before -->
<td class="td_icon" ng-switch="{{trans.type}}">

<!-- after -->
<td class="td_icon" ng-switch="trans.type">