Я пытаюсь сделать что-то прямо с пользовательским интерфейсом 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>';
Я не знаю, если динамически добавлять их в основном имеет какие-либо вопросы?
Я пробовал тот же код с предустановленными переключателями, и он работает.
Благодаря
Вы вручную вызываете '.setChecked (true)'? Это v1. Попробуйте '.checked = true' для v2. –
Я тоже пробовал, не работает. document.getElementsByTagName («ons-switch») [0] .checked undefined – ilijaluve
Это не угловатое, поэтому я не дал его в качестве ответа, но вот рабочий пример с ванилью: https: // codepen. io/anon/pen/zoqdQm – Munsterlander