#angular #typescript #ionic2
#angular #typescript #ionic2
Вопрос:
Здесь я использую значок переключения для настройки активного / неактивного уведомления.я получаю ответ от get call. При вызове get я получаю значение уведомления либо 0, либо 1, но мой ts-файл, который я использую noteValue, является логическим, что означает, что мы передаем true, являются ложными.
Но со стороны базы данных мы получаем либо 0, либо 1, со стороны базы данных они передают переменную только как логическое значение, но база данных хранит значения как 0 или 1.
Из-за того, что значок переключения noteValue работает неправильно, означает, что если я передаю true или false при обновлении приложения, оно (значок переключения) может показывать только false.И если значок переключения активен, он передает значение false, а значок переключения неактивен, он передает значение true.
HTML:
<ion-item no-lines >
<ion-label class="ion-label"> Notification</ion-label>
<ion-toggle (ionChange)="updateValue()" checked="noteValue"></ion-toggle></ion-item>
.ts:
export class NotificationPage {
public noteValue:boolean;
constructor(private navCtrl: NavController,private user:Users, private productServices:Products, private logger:Logger) {
var _this = this;
// get call
this.productServices. getNotification(function(data){
_this.logger.debug("checking my notification Details" JSON.stringify(data));
console.log(data.notification);
_this.noteValue = data.notification[0];
console.log(data.notification[0]);
})
}
//post call
updateValue(){
var _this=this;
_this.noteValue = !_this.noteValue; // If _this.noteValue is equal to true, now it will be set to false. If it's false, it will be set to true.
let notificationDetails = {
notification: _this.noteValue
};
console.log(notificationDetails);
this.user.setNotification(notificationDetails, function (result, data) {
_this.logger.debug("checking my notification Details" data);
if (result=='1') {
console.log( _this.noteValue);
//_this.noteValue=!_this.noteValue;
_this.logger.debug("checking my notification Details" data);
alert("sucesscall for notification" data.toString());
}
else {
_this.logger.info("failure Notification");
alert("failure for notification");
}
});
}
}
Ответ №1:
Если я правильно понимаю, в БД вы сохраняете значения типа 0 и 1, в то время ion-toggle
как ожидаемое значение true или false, и вы должны включить / отключить его в зависимости от этих значений.
Если правильно, с angular2 вы можете сделать что-то вроде этого:
<ion-toggle (ionChange)="updateValue()" checked="{{your_DB_variable === 1 ? 'true':'false'}}"></ion-toggle>
И он установит true или false в зависимости от your_DB_variable
.
Надеюсь, я вам помог. 🙂