Имея проблему с ионными переключателями, где когда-либо переключается, вы меняете ее, а только последнее выражение, приведенное ниже, находится в локальном хранилище.
Это список переключателей...
$scope.settingsList = [
{ text: "GBP", checked: gbpON },
{ text: "USD", checked: usdON },
{ text: "EURO", checked: euroON },
{ text: "AUD", checked: audON },
{ text: "CAD", checked: cadON },
{ text: "YEN", checked: yenON }
];
Это HTML...
<div class="list">
<ion-toggle ng-repeat="item in settingsList"
ng-model="item.checked"
ng-checked="item.checked"
ng-change="toggleONOFF({{item.text}})"
toggle-class="toggle-royal">
{{item.text}}
</ion-toggle>
</div>
и это то, что происходит, когда вы нажимаете на переключатель...
$scope.toggleONOFF = function($var) {
// GBP is toggled
if ($var = "GBP") {
if (localStorage.getItem("gbpON") == "true") {
localStorage.setItem("gbpON", false);
} else {
localStorage.setItem("gbpON", true);
}
};
// USD is toggled
if ($var = "USD") {
if (localStorage.getItem("usdON") == "true") {
localStorage.setItem("usdON", false);
} else {
localStorage.setItem("usdON", true);
}
};
// EURO is toggled
if ($var = "EURO") {
if (localStorage.getItem("euroON") == "true") {
localStorage.setItem("euroON", false);
} else {
localStorage.setItem("euroON", true);
}
}
// AUD is toggled
if ($var = "AUD") {
if (localStorage.getItem("audON") == "true") {
localStorage.setItem("audON", false);
} else {
localStorage.setItem("audON", true);
}
}
// CAD is toggled
if ($var = "CAD") {
if (localStorage.getItem("cadON") == "true") {
localStorage.setItem("cadON", false);
} else {
localStorage.setItem("cadON", true);
}
}
// YEN is toggled
if ($var = "YEN") {
if (localStorage.getItem("yenON") == "true") {
localStorage.setItem("yenON", false);
} else {
localStorage.setItem("yenON", true);
}
}
}
Проблема, с которой я сталкиваюсь, - это когда-либо переключать вы нажимаете ее, только меняет иену в локальном хранилище, а не тот, с которым она связана. Например toggleONOFF (GBP)
Полагаю, что добавляю ;
в выражении if-else
виновник также должен инициализировать ваш localStorage с некоторым значением или условием проверки перед его использованием в инструкции if-else.
if ($var = "GBP") {
if (localStorage.getItem("gbpON") == "true") {
localStorage.setItem("gbpON", false);
} else {
localStorage.setItem("gbpON", true);
}
};