В настоящее время я использую карты углового google для создания карты с несколькими различными типами маркеров. Ниже моей карте У меня есть простой набор флажков, как так:Залить/очистить массив, если флажок установлен/снят флажок
<div class="mapOptions">
<form action="" class="form-inline" style="text-align:center">
<label for="">General:</label>
<input type="checkbox" checked value="Games">
<label for="" style="color:#000033">Games</label>
<input type="checkbox" checked value="Practices">
<label for="" style="color:#ffd900">Practices</label>
</form>
</div>
В рамках моего контроллера я инициализировать пустые массивы затем заполнить их с «маркерами» через вызовы моих API конечных точек:
vm.markersGames = [];
vm.markersPractices = [];
Я вы хотите очистить каждый соответствующий массив, когда его флажок не установлен (например: пользователь отключает «Игры», метод в моих наборах контроллеров vm.markersGames = []
) и повторно заполняет каждый массив при нажатии флажка (например: «Пользователь проверяет« Практики », метод внутри мой контроллер вызывает конечную точку API и заполняет vm.markersPractices
).
Проблема, с которой я столкнулся, не знает, как правильно добавить «check/uncheck handlers» к моим input
.
Попытка перезагрузить маркеры при проверке:
vm.checkToggle = function(isChecked, value) {
if (!isChecked) {
vm[value] = [];
} else {
getPlayerAddress();
$scope.$apply();
}
};
getPlayerAddress()
вызовы API для заполнения маркеров массива.
Спасибо! У меня есть 95% пути. У меня проблема. Если я сниму флажок, маркеры исчезнут, как ожидалось. Тем не менее, когда я снова проверяю флажок, маркеры не отображаются повторно, пока я не щелкнул где-нибудь на карте (кажется, может быть проблема с каким-то вопросом цикла дайджеста?). – MattDionis
Да, вы можете попробовать использовать '$ apply', чтобы оценить переданную функцию и запустить цикл $ digest. –
К сожалению, я получаю 'Ошибка: [$ rootScope: inprog] $ применяется уже в процессе' при попытке этого. – MattDionis