我正在尝试使用Onsen UI直接做一些事情 - 自动取消选中一些已检查的开关。所以,我有许多开关,我想模仿单选按钮的行为(基本上切换一个将所有其他设置为非检查)。
我正在使用angular,当我尝试从代码中执行此操作时出现此错误。
未捕获TypeError:document.getElementsByTagName(...)[0] .setChecked 不是一个函数(...)
基本上我试过
$scope.$on('toggle', function(event, data) {
$scope.selected[data] = event.targetScope.model;
for (i = 0; i < $scope.selected.length; i++) {
if (i != data) {
$scope.selected[i] = !$scope.selected[data];
}
}
});
我的所有开关都是使用以下方式动态添加的:
> var h = '<ons-list-item><div class="center">' + placeResult.name
> + '</div><div class="right"><ons-switch id="switch' + i
> + '" "ng-model="mySwitch' + i
> + '" ng-click="$emit(\'toggle\',' + i
> + ')"></ons-switch> </div></ons-list-item>';
我不知道动态添加它们是否有任何问题?
我尝试使用预设开关使用相同的代码,但它可以正常工作。
由于
答案 0 :(得分:1)
根据我的理解,您正尝试使用一个主复选框创建一些复选框,其所选其他框/开关将模仿其检查状态。
如果是这种情况,在Angular中您可以轻松使用 ng-checked 指令。这是一个例子:
<input type="checkbox" ng-model="check-all">Check all<br>
<input type="checkbox" ng-checked="check-all">Option 1<br>
<input type="checkbox" ng-checked="check-all">Option 2<br>
<input type="checkbox" ng-checked="check-all">Option 3