Angular: ng-if 不起作用,并抛出错误

Angular: ng-if doesn't work, and throws errors

我正在使用的数据对象中返回 results.name。当我打印出来或不使用 ng-if 时,模板工作正常。然而,我并不总是有这些数据进来,所以添加了一个检查以在它没有进来时不添加 DOM/HTML。

这只是返回的一串数据,因此假设这会进行空值检查。

    <h1 ng-if="{{results.name}}" class="name">{{results.name}}</h1>

如果我删除 ng-if,它工作正常。

    <h1 class="name">{{results.name}}</h1>

<!-- ngIf: {{results.name}} -->
Error: [$parse:syntax] http://errors.angularjs.org/undefined/$parse/syntax?p0=results.name&p1=is%20unexpected%2C%20expecting%20%5B%3A%5D&p2=3&p3=%7B%7Bresults.name%7D%7D&p4=results.name%7D%7D
    at Error (native)

您需要从

 <h1 ng-if="{{results.name}}" class="name">{{results.name}}</h1>

 <h1 ng-if="results.name" class="name">{{results.name}}</h1>

删除额外的 {{ }} - 您不需要它们在 angular 的 ng-* 属性中:

<h1 ng-if="results.name" class="name">{{results.name}}</h1>

仅当您想要从范围打印某些内容以供用户查看时才需要它们,就像您在 h1 元素中所做的那样。