Angular2如何使用空对象或数组

时间:2017-05-10 03:39:38

标签: angular ngif

我从服务器获取json对象并且它们是深层嵌套的。

无论如何,我想在json对象为空(或数组)时显示'用户尚未填写'

我尝试了几乎所有东西,但他们没有工作。我做错了什么?

<div class="common-container" *ngFor="let detail of deepTeaInfo | getValues">
  <div id="exp-box" *ngFor="let grade of detail['introduceInfo']['grade'] | getValues">
    <p class="fontstyle3">Grade: <span class="fontstyle2">{{grade.category | type_transform}}</span></p>
    <p class="fontstyle3">Period: <span class="fontstyle2"> {{grade.when | type_transform}}</span></p>
    <p class="fontstyle3">Description: <span class="fontstyle2"> {{grade.description}}</span> </p>

    <p class="fontstyle2" *ngIf="grade?.length > 0">
      The user hasn't filled in yet
    </p>
  </div>
  <br>
</div>

我尝试过的事情

 *ngIf="grade?.length > 0"

*ngIf = "(grade|json) == '{}'"

*ngIf = "grade.length >0"

*ngIf = "(grade|json).length >0"

*ngIf "(grade|json) == ({}|json)"

他们没有工作。

如果我在html中{{grade.json}},我会看到类似

的内容
 {when: 2011, description: temp, category: school},
 {when: 2011, description: temp, category: school}

如果我在html中{{grade}},我会看到

 [object Object]
 [object Object]

(我知道数组是空的,从我从服务器获得的json字符串:))

我做错了什么?

3 个答案:

答案 0 :(得分:0)

对于每个对象,您应该将其存储在模型和模板中,您可以轻松检查该特定模型是否有数据。这是将嵌套的json对象存储到模型中的理想方法。

答案 1 :(得分:0)

这对我有用*ngIf= "(grade|json) == 'null' "

答案 2 :(得分:0)

您的问题/代码似乎不足以判断其数组还是对象。

案例1:数组

    <div *ngIf="array?.length">

重复https://stackoverflow.com/a/55177735/2488600

案例2:对象

    <div  *ngIf="(object | keyvalue)?.length">

重复https://stackoverflow.com/a/56532650/2488600