无法正确获取ng-repeat

时间:2015-07-26 06:24:41

标签: angularjs

Chrome网络会在没有要显示的证书时显示:

    user_certificates: []

我正在尝试显示“添加证书”按钮,当没有要显示的证书但它无法正常工作时。我哪里错了?

    <div ng-show="users.user_certificates == null">
        <div ng-click="newCertificate.editFlag = !newCertificate.editFlag" ng-init="newCertificate.editFlag=false">
            <span class="btn btn-default">Add Certificate</span>
        </div>
    </div>

仅供参考,这是我的工作代码,以显示何时有证书:

    <div ng-repeat="certificate in user.user_certificates">
        <div ng-hide="certificate.editFlag">
            <strong>{{certificate.title}}</strong><br />
            {{certificate.description}}
        </div>
    </div>

3 个答案:

答案 0 :(得分:2)

试试

<div ng-show="users.user_certificates.length === 0">

将数组与null进行比较始终返回false。这就是为什么ng-show无效的原因。您甚至可以尝试user_certificates.length[index] == null它将比较存储在给定索引中的值,而不是比较整个数组。您可以使用typeof来检查是否定义了数组。像

if(typeof user_certificates.length === "undefined") {
  //Array is not defined
}

答案 1 :(得分:1)

在JS中,空数组不等于null,例如如果你在控制台中尝试这个:

a = [];
a == null

你会得到虚假的回报 同样,由于对象在JS中的工作方式,a == []也将是错误的。 你想要的是a.length == 0

答案 2 :(得分:0)

我更喜欢观察者

[j]