2

我正在尝试使用 Onsen UI 直接做一些事情——自动取消选中一些选中的开关。所以,我有许多开关,我想模仿单选按钮的行为(基本上切换一个会将所有其他开关设置为未选中)。

我正在使用角度,当我尝试从代码中执行此操作时出现此错误。

未捕获的类型错误:document.getElementsByTagName(...)[0].setChecked is not a function(...)

基本上我试过了

$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>';            

不知道动态添加基本有没有问题?

我用预设开关尝试了相同的代码,它可以工作。

谢谢

4

1 回答 1

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
于 2016-11-11T05:16:47.210 回答