我使用ng-if
来显示/隐藏页面中的一些元素,如下:
<span ng-if="user.name == ''||user.name ==null">Name:No Data</span>
<span ng-if="user.name != ''&& user.name !=null" ng-bind="'Name:' + user.name"></span>
但是无论user.name
是否设置,这两个元素都会显示。我在 Chrome 的控制台中确认,在 Debug模式下运行时条件为真。
在我用 ng-show
替换 ng-if
后它就起作用了,我对此感到非常困惑。
感谢您的任何澄清。谢谢!
更新:
这是我的$scope.user
:
var u = {
'loginId': mb,
'mobile': mb.substr(0,3 ) + "****" + mb.substr(7, 11),
'account': mb.substr(0,3 ) + "****" + mb.substr(7, 11),
'score': data.score,
'email': data.email,
'name': data.name,
'id': data.id
};
$scope.user = u;
现在我确实有了user.name
的值,我尝试了下面提供的建议,这是我的测试结果。
最佳答案
您正在使用 ==
来检查相等性,即使数据未定义或类似的其他数据,该相等性也会成功。因此,使用 ===
即可完成您的工作。
祝一切顺利。
关于javascript - 即使条件为真,使用 ng-if 也不会显示该元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44281069/