【问题标题】:How can I disable my checkbox from AngularJS input?如何从 AngularJS 输入中禁用我的复选框?
【发布时间】:2015-06-04 01:36:18
【问题描述】:
<div ng-repeat="x in spaceutilization">
  <input type="checkbox" name="{{x.filenumber}}" id="{{x.id}}" class = "pdffiles" value="101SP{{x.initials}}.dwg" /><label for="{{x.id}}"><button type = "button" class = "btn btn-primary btn-sm hidden-sm hidden-xs"> PDF</button></label><br />
</div>

我需要能够向这个 sn-p 添加一些内容,以禁用基于另一个 AngularJS 输入(例如 {{x.status}})的输入复选框。我试着简单地做:

<input type="checkbox" name="{{x.filenumber}}" id="{{x.id}}" class = "pdffiles" value="101SP{{x.initials}}.dwg" {{x.status}} />

status:'disabled' 的位置,但输出为

{{x.status}}=""

在输入元素中......我根本不明白为什么。但这似乎是最简单的路线。

【问题讨论】:

  • 您不能使用 Interpolation 方法将属性动态添加到您的 html 标签。在你的情况下,你可以简单地做ng-disabled="x.status"

标签: javascript angularjs angularjs-ng-repeat disabled-input angularjs-ng-disabled


【解决方案1】:

您需要使用ng-disabled="expression" 指令,在表达式评估值的基础上,它会向该元素添加禁用属性。此外,为了更好地评估属性值,您可以使用ng-attr 指令

标记

<input type="checkbox" ng-attr-name="{{x.filenumber}}" ng-attr-id="{{x.id}}" class ="pdffiles" 
value="101SP{{x.initials}}.dwg" ng-disabled="x.status == 'disabled'"/>

如果x.status 确实返回了bool 值,那么您可以直接使用ng-disabled="{{x.status}}"

【讨论】:

  • 你的意思是 {{x.status}} == 'disabled' 吗?另外,地位等于什么?如果我没有禁用复选框怎么办?
  • 使用上面@Rahil Wazir 的评论,我做了 ng-disabled="{{x.status}}" where status:'true' or status:'false"
  • @Christine268 嘿,不要使用 ng-disabled 指令的插值,ng-disabled 指令已经足够成熟,可以评估范围变量,如果 x.status 具有布尔值,则它必须是 ng-disabled="x.status"
  • @pankajparker 当我将其更改为 ng-disabled="x.status" 时,它不再起作用。 status 等于 true 或 false。 ng-disabled="{{x.status}}" 对我有用。
  • @Christine268 我更新了答案,现在你可以投票并接受它谢谢:)
猜你喜欢
  • 2023-04-04
  • 2018-04-01
  • 1970-01-01
  • 2014-12-12
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多