根据它是否存在显示一个或另一个值

时间:2016-03-14 11:36:03

标签: javascript html angularjs

我有以下数组:

vm.persons = [{id:1, name:'Manuel1', age:30}, {id:2, name:'Manuel2', errorCode:'Error', age:18}]

我想以这种方式表现出来:

------------------
|Name    | Age   |
------------------
|Manuel2 | Error |
------------------
|Manuel1 | 30    |
------------------

因此,如果存在errorCode,则不应显示年龄。

这就是我现在所拥有的:

    <tr ng-repeat="person in persons" ng-class="...">
      <td>{{::person.name}}</td>
      <td>{{::person.age}}</td>
    </tr>

我该怎么做呢?我想首先显示有错误的人,然后是其他人。我认为你可以用array.sort做到这一点,对吧?

8 个答案:

答案 0 :(得分:1)

<tr ng-repeat="person in persons | orderBy:'errorCode'" ng-class="...">
  <td>{{::person.name}}</td>
  <td>{{::(!person.errorCode) ? person.age : 'Error'}}</td>
</tr>

答案 1 :(得分:0)

我使用指令ng-if完成了这样做:

<tr ng-repeat="person in persons" ng-class="...">
  <td>{{::person.name}}</td>
  <td ng-if="person.age">{{::person.age}}</td>
</tr>

ng-if评估表达式,如果为true则显示元素...您可以执行类似ng-if="person.errorCode != 'Error'"ng-if="!person.errorCode"的操作,您必须检查是否符合您的需要的真假表达式。 。

答案 2 :(得分:0)

<tr ng-repeat="person in persons" ng-class="..."> <td>{{::person.name}}</td> <td>{{person.age == 'Error' ? '-' : ::person.age}}</td> </tr>

如果你不想显示你的设计将会运行的年龄,你需要显示一些文字如果找不到

答案 3 :(得分:0)

您应该能够使用?:三元运算符,它充当简单的if / then-like表达式。这将评估第一个学期(在?之前)。如果它的计算结果为true,则表达式为?退回。如果计算结果为false,则返回:之后的表达式。

所以{{::(person.errorCode ? person.errorCode : person.age)}}应该有用,因为我还没有测试过它。

答案 4 :(得分:0)

使用ng-if打印或不打印col和colspan以防止空白空间

<tr ng-repeat="person in persons" ng-class="...">
    <td colspan="{{!person.errorCode ? '1' : '2'}}">{{::person.name}}</td>
    <td ng-if="!person.errorCode" >{{::person.age}}</td>
</tr>

答案 5 :(得分:0)

试试这个 -

 <tr ng-repeat="person in persons" ng-class="...">
      <td>{{person.name}}</td>
      <td ng-if="!person.errorCode">{{person.age}}</td>
      <td ng-if="person.errorCode">{{person.errorCode}}</td>
 </tr>

答案 6 :(得分:0)

使用此代码以使其正常工作

  <tr ng-repeat="person in persons" ng-class="...">
  <td>{{person.name}}</td>
  <td>{{person.errorcode==""?person.age:person.errorcode}}</td>
  </tr>

答案 7 :(得分:0)

如需订购,请查看orderBy

如果元素已定义,您可以定义返回1的自定义函数,如果没有,则定义0

条件显示已在多个答案中解释。