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>
答案 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]