Я разрабатываю приложение с SQLite, которое создает и перечисляет пользователей...
Для этого я создал сервис, в котором я создаю базу данных и два метода (создать и перечислить), следует отметить, что ошибок нет, и я все импортировал правильно
база данных.тс:
@Injectable()
export class DatabaseProvider {
private db: SQLiteObject;
private isOpen: boolean;
constructor(
public http: Http,
public storage: SQLite) {
if(!this.isOpen){
this.storage = new SQLite();
this.storage.create({ name: "data.db", location:"default" }).then((db:SQLiteObject) => {
this.db = db;
db.executeSql("CREATE TABLE IF NOT EXIST usuarios (Codigo INTEGER PRIMARY KEY AUTOINCREMENT, Identificacion INTEGER, Nombre TEXT, Apellido TEXT)", []);
this.isOpen = true;
}).catch((error) => {
console.log(error);
})
}
}
crearUsuario(Identificacion:number, Nombre:string, Apellido:string){
return new Promise ((resolve , reject) => {
let sql = "INSERT INTO usuarios (Identificacion, Nombre, Apellido) VALUES (?, ?, ?)";
this.db.executeSql(sql, [Identificacion, Nombre, Apellido]).then((data) => {
resolve(data);
}, (error) => {
reject(error);
});
});
}
listarUsuario(){
return new Promise ((resolve , reject) => {
this.db.executeSql("SELECT * FROM usuarios", []).then((data) => {
let arrayUsuarios = [];
if(data.rows.length > 0){
for (var i=0; i < data.rows.length; i++){
arrayUsuarios.push({
Codigo: data.rows.item(i).Codigo,
Identificacion: data.rows.item(i).Identificacion,
Nombre: data.rows.item(i).Nombre,
Apellido: data.rows.item(i).Apellido,
});
}
}
resolve(arrayUsuarios);
}, (error) => {
reject(error);
})
});
}
}
на мой взгляд home.html у меня есть форма и две кнопки... одна перечисляет пользователей, а другая создает пользователей формы
домашний.html:
<button ion-button block color="secondary" (click)="listarUsuario()">Listar Usuario</button>
<form [formGroup]="todo" (ngSubmit)="crearUsuario()" novalidate>
<ion-item>
<ion-label>Nombre</ion-label>
<ion-input type="text" formControlName="Nombre"></ion-input>
</ion-item>
<ion-item *ngIf="todo.get('Nombre').errors && todo.get('Nombre').dirty">
</ion-item>
<ion-item>
<ion-label>Apellido</ion-label>
<ion-input type="text" formControlName="Apellido"></ion-input>
</ion-item>
<ion-item *ngIf="todo.get('Apellido').errors && todo.get('Apellido').dirty">
</ion-item>
<ion-item>
<ion-label>Indentificación</ion-label>
<ion-input type="text" formControlName="Identificacion"></ion-input>
</ion-item>
<button ion-button block type="submit" [disabled]="!todo.valid">Crear Usuario</button>
</form>
<ion-list>
<ion-item-sliding *ngFor="let item of listaPersonas">
<ion-item>
<h2>{{item.Nombre}} - {{item.Apellido}}</h2>
</ion-item>
<ion-item-options side="right">
<button ion-button color="danger">
<ion-icon name="delete"></ion-icon>
Eliminar
</button>
</ion-item-options>
</ion-item-sliding>
</ion-list>
мой контроллер имеет следующий код:
дом.тс:
export class HomePage {
private listaPersonas: any;
private todo: FormGroup;
constructor(public navCtrl: NavController, private database: DatabaseProvider, private formBuilder: FormBuilder) {
this.todo = this.formBuilder.group({
Nombre: ['', [Validators.required, Validators.minLength(4), Validators.maxLength(8)]],
Apellido: ['', [Validators.required, Validators.minLength(4), Validators.maxLength(8)]],
Identificacion: ['', Validators.required],
});
}
crearUsuario(){
console.log(this.todo);
this.database.crearUsuario(this.todo.value.Identificacion, this.todo.value.Nombre, this.todo.value.Apellido).then((data) => {
console.log(data);
this.listarUsuario();
}, (error) => {
console.log(error);
})
}
listarUsuario(){
this.database.listarUsuario().then((data: any) => {
console.log(data);
this.listaPersonas = data;
}, (error) => {
console.log(error);
})
}
}
Я тестирую свое приложение на физическом устройстве, но оно ничего не делает... не создает, не перечисляет пользователей, я думаю, я не создаю базу данных, я новичок в IONIC 3 и развертываю свои приложение на физическом устройстве сначала я создаю с помощью команды ionic cordova build android
, а затем развертываю свое приложение на телефоне с помощью команды ionic cordova run android --device
Что я делаю не так? Как найти ошибку, попробовав приложение на физическом устройстве? с моей консолью отладки? где база данных Ionic 3 физически хранится на моем устройстве (в каталоге)? любая помощь для меня?