AngularJS中ng-if条件为false时显示元素,排除null/undefined的问题
解决AngularJS单选框状态判断问题
问题核心是初始状态下data.label为undefined,!data.label会被解析为true,导致目标元素提前显示。要实现仅当明确选择"No"(即data.label等于false)时才显示元素,需要精准判断值类型:
修改后的代码
<div> <md-radio-group ng-model="data.label"> <md-radio-button ng-value="true">Yes</md-radio-button> <md-radio-button ng-value="false">No</md-radio-button> </md-radio-group> </div> <div ng-if="data.label === false"> <label> <b>............</b> </label> </div>
原理说明
- 使用严格相等运算符
===判断data.label是否确实是布尔值false,而非null或undefined - 初始状态下
data.label未赋值(undefined),data.label === false结果为false,目标元素不会显示 - 当选择"No"时,
data.label被设为false,判断条件成立,元素正常显示
内容的提问来源于stack exchange,提问作者sai kiran
相关产品推荐
相关产品推荐

