2016-11-09 3 views
2

Я пытаюсь сделать что-то прямо с пользовательским интерфейсом Onsen - автоматически снимите флажок с некоторых переключателей. Итак, у меня есть несколько переключателей, и я хочу имитировать поведение кнопки с помощью кнопок (в основном, переключение между всеми остальными на неконтролируемые).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. Попробуйте '.checked = true' для v2. –

+0

Я тоже пробовал, не работает. document.getElementsByTagName («ons-switch») [0] .checked undefined – ilijaluve

+1

Это не угловатое, поэтому я не дал его в качестве ответа, но вот рабочий пример с ванилью: https: // codepen. io/anon/pen/zoqdQm – Munsterlander

ответ

1

Из того, что я понимаю, вы пытаетесь сделать ряд флажков с одним мастер флажок которого проверяется состояние имитируется всеми другими коробками/коммутаторами.

Если это так, в Угловом вы можете легко использовать 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 
+0

Не совсем. Я хочу иметь эффект радио-коробки. Поэтому, как только я переключу один переключатель в положение «включено», все остальное автоматически отключится. – ilijaluve

Смежные вопросы