2016-11-09 11 views
2

私はOnsen UIで簡単に何かをしようとしています - チェックされているスイッチの選択を自動的に解除します。だから、私はいくつかのスイッチを持っていて、ラジオボタンの動作を模倣したいと思っています(基本的には、他のすべてをチェックしないように切り替えます)。Onsen UIのスイッチが自動的に変更されます

私は角度を使用していますが、コードからしようとするとこのエラーが発生します。

Uncaught TypeError: 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>';    

動的に基本的にそれらを追加することがすべての問題を持っている場合、私は知らないのですか?

私はプリセットスイッチで同じコードを試してみました。

おかげ

+1

手動で '.setChecked(true)'を呼び出していますか?それはv1です。 v2については '.checked = true'を試してください。 –

+0

私もそれを試して、動作しません。 document.getElementsByTagName( "ons-switch")[0] .checked 未定義 – ilijaluve

+1

これは角度ではありませんので、私は答えとして与えませんでしたが、ここではバニラの動作例があります:https:// codepen。 io/anon/pen/zoqdQm – Munsterlander

答えて

1

私が理解から、あなたがチェック状態のすべての他のボックス/スイッチによって模倣された1つのマスターチェックボックスとチェックボックスの数をしようとしています。

この場合、Angularではng-checking指示文を簡単に使用できます。次に例を示します。

<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 
+0

私はラジオボックスの効果を持たせたい。一度スイッチをオンにすると、残りのスイッチはすべて自動的にオフになります。 – ilijaluve

関連する問題