ng-readonly无法使用角度复选框

时间:2015-11-18 10:34:53

标签: angularjs checkbox

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

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

Html:

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

控制器:

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

添加了Fiddle

4 个答案:

答案 0 :(得分:27)

如果你想禁用它,请使用:

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

答案 1 :(得分:8)

如果你想让它“更”可见,你可以随时使用一些小技巧:

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

答案 2 :(得分:7)

ng-readonly仅适用于输入类型=&#34;文本&#34;

请参阅此处的文档 - https://docs.angularjs.org/api/ng/directive/ngReadonly

HTML规范不要求浏览器保留布尔属性的值,例如readonly。 (它们的存在意味着真实,它们的缺失意味着错误。)如果我们将Angular插值表达式放入这样的属性中,那么当浏览器删除属性时绑定信息将会丢失。 clear_keys = True 。浏览器不会删除此补充指令,因此提供了存储绑定信息的永久可靠位置。

答案 3 :(得分:0)

使用CSS:

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

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

最后,在IE中不起作用