【问题标题】:ng-readonly not working in angular checkboxng-readonly 在角度复选框中不起作用
【发布时间】:2016-02-20 01:12:09
【问题描述】:

我可以在复选框中使用 ng-readonly 指令吗?

即使在使用 ng-readonly 修饰后,复选框也是可写的。

HTML:

<input type="checkbox" ng-model="model" ng-readonly="test" /> {{model}}

控制器:

myApp.controller('MyCtrl', function($scope) {
    $scope.test = true;
});

已添加Fiddle

【问题讨论】:

标签: angularjs checkbox


【解决方案1】:

Tente também [attr.disabled];

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

使用 CSS:

md-checkbox[ng-readonly="true"]{
    z-index: -1;
}

md-checkbox[ng-readonly="true"]{
     pointer-events: none
}

最后一个,在 IE 中不起作用

【讨论】:

    【解决方案3】:

    如果你想禁用它,使用这个:

    <input type="checkbox" ng-disabled="true" ng-model="test" />
    

    【讨论】:

      【解决方案4】:

      如果你想让它“更多”可见,你总是可以使用一点 javascript 技巧:

      <input type="checkbox" ng-model="model" onclick="return false;" />
      

      【讨论】:

      • 更好更清洁的解决方案。
      • 绝对不要!违反框架的工作
      【解决方案5】:

      ng-readonly 仅适用于 input type="text"

      在此处查看文档 -https://docs.angularjs.org/api/ng/directive/ngReadonly

      HTML 规范不要求浏览器保留布尔属性的值,例如只读。 (它们的存在意味着真,它们不存在意味着假。)如果我们将 Angular 插值表达式放入这样的属性中,那么当浏览器删除该属性时,绑定信息将丢失。 The ngReadonly directive solves this problem for the readonly attribute。这个补充指令不会被浏览器删除,因此提供了一个永久可靠的地方来存储绑定信息。

      【讨论】:

      • 当前文档 1.5.8(您的链接指向)没有提到这种约束,但它实际上是有效的。 (需要改进文档吗?)
      猜你喜欢
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 2016-11-24
      • 2014-08-20
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 2022-11-27
      相关资源
      最近更新 更多