我使用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的控制台中确认在使用调试模式运行时条件为真。
在我用ng-if
替换ng-show
后,它工作正常,我真的对此感到困惑。
赞赏任何澄清。谢谢!
更新
这是我的$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
的价值,我尝试了下面提供的建议,这是我的测试结果。
答案 0 :(得分:2)
您正在使用int n = 3;
char vla[n]; // this is a variable length array
char arr[3]; // this is just an array
char* darr = new char[3]; // this is a pointer pointing to dynamically allocated memory
std::string str; // but instead, this is just better
来检查即使数据未定义或其他类似数据也会成功的相等性。所以使用==
来完成你的工作。
一切顺利。
答案 1 :(得分:1)
如果user.name
为undefined
,null
或""
function MyCtrl($scope) {
$scope.user = {
name: "xyz"
};
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app ng-controller="MyCtrl">
<span ng-if="!user.name">Name:No Data</span>
<span ng-if="user.name" ng-bind="'Name:' + user.name"></span>
</body>
&#13;
答案 2 :(得分:0)
您的问题是未定义的。
请记住null == undefined
但null !== undefined
。
因此,当未定义属性时,将显示两个条件。
您的情况只能是ng-if="user.name"
或使用严格的平等===
答案 3 :(得分:0)
检查你的情况:
<span ng-if="user.name">Name:No Data</span>
<span ng-if="!user.name" ng-bind="'Name:' + user.name"></span>
由于当false
为:user.name
时,null
评估为0
,""
,NaN
(空字符串),false
或仅json_data = json.loads(req.stream.read())
。
仅在您确定声明变量时才有效。
答案 4 :(得分:0)
确保您拥有最新的Angular版本,但在早期版本的~v1.0.1
中无法使用
AngularJS在
中添加了ngIf指令1.1.5
工作演示
var myApp = angular.module('myApp',[]);
myApp.controller("MyCtrl", function($scope) {
$scope.user = {
name: "Rohit"
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
<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>
</div>