AngularJS:复选框中的checked属性没有'不起作用
AngularJS: checked attribute in checkbox doesn't work
这是我的代码:
<body ng-app="app">
<div ng-controller="TestController">
<input type="checkbox" checked ng-repeat="num in array track by $index" ng-model="array[$index]" />
</div>
<script type="text/javascript">
var app = angular.module('app', []);
app.controller('TestController', function ($scope) {
$scope.array = [1, 2, 3, 4];
});
</script>
我特别为每个<input>
标记添加了checked
属性,因为默认情况下可以选中复选框。但结果是四个复选框中没有一个被选中。为什么?
我知道如果我添加ng-checked="num"
属性可以使检查工作,但我仍然想知道为什么自然的检查arrtibute不工作。
来自角度文档
默认情况下,ngModel通过引用而不是值来监视模型。
当你说array[$index]
时,它给出的是你的型号名称的整数值,它是错误的
请用这种方式
<div ng-controller="TestController">
<input type="checkbox" checked ng-repeat="num in array track by $index" ng-model="array[$index].checked" title="{{array[$index].val}}" />
</div>
<script type="text/javascript">
var app = angular.module('app', []);
app.controller('TestController', function ($scope) {
$scope.array = [{val:1,checked:true},{val:2,checked:false},{val:3,checked:true},{val:4,checked:true},{val:5,checked:false}];
});
</script>
ng-model="array[$index]"
将dom检查的属性设置为false
至于checked
不起作用的原因:当angular使用ng-checked
或ng-model
绑定到复选框时,它会设置checked
属性,以便复选框在浏览器中看起来正确-它不在乎第一次绑定时checked
属性是什么。
您不应该将checked与ng模型相结合。同样适用于使用ng模型检查的ng。两者都会修改复选框选中状态,从而导致不可预测的行为。
如果您希望您的复选框在默认情况下被选中,请通过ng模型指令进行操作。
你使用的结构似乎有点奇怪。您的复选框不会被选中,因为角度与值不匹配。
默认情况下,当用户与复选框交互时,在复选框上使用ng模型会在ng模型值中产生true和false。您可以通过使用ng-true-value
和ng-false-value
来更改它。检查角度文件。
如果您将ng true value="2"添加到复选框中,则最初会选择第二个复选框,因为它以值2开头。
相关文章:
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- margin-left和width属性在mozillafirefox中不起作用
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- 在jQuery中链接时CSS属性不起作用
- 使用WebView中的javascript触发setVisibility属性;不起作用
- .split() 数据属性在应该工作的时候不起作用
- 函数中的 angularJS 访问对象属性不起作用
- 当我关联runat=“server”属性时,JQuery UI 按钮集在单选按钮上不起作用
- 属性选择器不起作用(语法错误、无法识别的表达式)
- 使用 Div 标签的 location.href 属性时,Eval 不起作用
- 当图像和链接是 json 对象属性的值时,它们不起作用
- 为什么 HTML 中的 Value 属性在与 AngularJS 中的 ng-model 一起使用时不起作用
- JQuery多属性筛选器不起作用
- 占位符属性嵌入IE中的iframe时不起作用
- 使用 css() 更改自定义属性不起作用
- $(this) 在 onclick 属性中不起作用
- 调用类属性不起作用
- 标签的属性在角度方向上不起作用
- 为什么onclick属性不起作用
- jQuery代码不起作用(属性不是函数)