【问题标题】:ng-disabled not evaluating every time on button clickng-disabled 不会在每次单击按钮时进行评估
【发布时间】:2017-12-28 06:44:14
【问题描述】:

我实际上是在尝试在我的 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 表达式的值为 true,单选按钮也不会被禁用。

在调试时,我发现了一个无法正常工作的特定场景。一旦我点击了我的应用程序中的特定下拉菜单,之后如果我返回并点击编辑按钮来检查这些单选按钮是否被禁用。此时,即使 ng-disabled 表达式的值为 true,单选按钮也不会被禁用。

【问题讨论】:

  • 应该ng-disabled="editnotscheduled 不是ng-disabled="campaign.editnotscheduled
  • 我的错。打字错误。进行了所需的编辑。感谢您的建议。

标签: javascript html css angularjs


【解决方案1】:

我认为 OR 的逻辑导致了问题。

ng-disabled="campaign.editnotscheduled || ischallengeTrigger" 检查> ng-disabled="editnotscheduled || ischallengeTrigger">

如果其中任何一个为假。那么您的按钮应该被禁用。

【讨论】:

  • 这是一个 OR 条件,对。在这里,如果变量中的任何一个为真,则条件评估为真。就我而言,ischallengeTrigger 是真的。因此,此条件始终评估为真,最终应禁用单选按钮。感谢您的回复。我想您已经将我的 OR 条件与 AND 条件真值表混淆了。
猜你喜欢
  • 1970-01-01
  • 2014-11-06
  • 2016-07-15
  • 2022-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多