Помогите, ребята.Я строю некоторый тип приложения todo, который использует SQLite для хранения.На моей домашней странице я показываю список задач.Это выглядит примерно так: *ngFor="let todo of itemList"
В списке все в порядке, но когда я перехожу на другую страницу, скажем, я перехожу на страницу, на которой я добавляю новый Todo, и процесс завершается, и я возвращаю страницу в корень, затем списоку меня есть дубликаты.Если я выхожу из приложения и открываю его снова, все возвращается в норму.Я где-то читал об этом, но я не совсем уверен в деталях, человек сказал, что это связано с подпиской и отпиской.Буду признателен, если кто-нибудь сможет мне помочь.Заранее спасибо.
Вот код компонента
public itemList : Array<Object>;
this.todoService.read().then((response: any)=>{
this.itemList = <Array<Object>> response;
});
Служба, которая возвращает данные, выглядит как
read(){
return new Promise((resolve, reject) => {
this.sqlite.create({
name: DB_NAME,
location: 'default'
})
.then((db: SQLiteObject) => {
db.executeSql('CREATE TABLE IF NOT EXISTS todos(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(32), date VARCHAR(32), time VARCHAR(32), datetime VARCHAR(32))', {})
.then(() => console.log("Created Table OR NOT"))
.catch(e => this.presentAlert(e));
db.executeSql('SELECT * FROM todos ORDER BY id DESC', {})
.then((response) => {
if(response.rows.length > 0){
for(var i=0; i < response.rows.length; i++){
this.my_todos.push({
id:response.rows.item(i).id,
name:response.rows.item(i).name,
date:response.rows.item(i).date,
time:response.rows.item(i).time,
datetime:response.rows.item(i).datetime
})
}
}
resolve(this.my_todos);
})
.catch(e => this.presentAlert(JSON.stringify(e)));
})
.catch(e => this.presentAlert(JSON.stringify(e)));
});
}