You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 1中如何依据Scope动态添加e-required属性(不使用ng-show)

在AngularJS 1中动态添加e-required属性(不使用ng-show)

要实现根据Scope值动态控制e-required属性的存在,不用ng-show的话,直接用AngularJS内置的ng-attr指令就可以搞定,这是专门用来动态控制DOM属性的方案。

具体实现

HTML代码

<strong class="test" ng-attr-e-required="!disableStreetValidation"></strong>

工作原理

  • 当$scope.disableStreetValidation = false时,!disableStreetValidation的结果是true,Angular会自动为元素添加e-required属性,最终DOM结构就是<strong class="test" e-required>;
  • 当$scope.disableStreetValidation = true时,表达式结果为false,Angular会移除这个属性,最终DOM结构为<strong class="test">。

补充细节

如果遇到某些场景下直接绑定布尔值不生效的情况,可以改用下面的写法,确保属性在表达式为假时完全被移除:

<strong class="test" ng-attr-e-required="{{!disableStreetValidation || undefined}}"></strong>

这里利用了Angular的规则:当ng-attr绑定的表达式结果为null、undefined或false时,对应的属性会被从DOM中移除。

内容的提问来源于stack exchange,提问作者Dariusz Rup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:35:24