我实际上是在尝试通过单击我的 angularjs 应用程序中的一个按钮来禁用一对单选按钮。
下面提供了单选按钮的代码片段:
<div class="col-xs-4 btn-group" id="challenge-radio-btn">
<label class="radio-inline">
<input type="radio" ng-model="trigger" ng-value=false
name="{{path.id}} notChallengeTriggr"
ng-change = "onChange(x,y,z,w,a)"
ng-disabled="campaign.editnotscheduled || ischallengeTrigger"
checked> No
</label>
<label class="radio-inline">
<input type="radio" ng-model="trigger" ng-value=true
name="{{path.id}} challengeTriggr"
ng-change = "onChange(x,y,z,w,a)"
ng-disabled="campaign.editnotscheduled || ischallengeTrigger"> Yes
</label>
</div>
单击按钮后,我什至尝试打印在 ng-disabled 中评估的表达式的值。每次单击此按钮时,该值都会变为真(因为我已经编写了 js 代码隐藏来实现这一点)。即使 ng-disabled 表达式的值为真,单选按钮也不会被禁用。
在调试时,我发现了一个无法正常工作的特定场景。单击应用程序中的特定下拉列表后,如果我返回并单击编辑按钮以检查这些单选按钮是否被禁用。那时,即使 ng-disabled 表达式值为真,单选按钮也不会被禁用。
最佳答案
我认为 OR 的逻辑导致了问题。
ng-disabled="campaign.editnotscheduled || ischallengeTrigger"选中> ng-disabled="editnotscheduled || ischallengeTrigger">
如果其中任何一个为假,那么您的按钮应该被禁用。
关于javascript - ng-disabled 每次单击按钮时都不会评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48002842/