Le problème est que je veux faire un événement en alerte (bouton) que je veux le faire bouger vers une autre page et ce bouton n'existe plus en HTML que la raison pour laquelle je peux ' t faire une (clic) fonction et quand je l'exécute, ne me donnez pas d'erreur de fournisseur "Aucun fournisseur pour NavController". J'ai essayé une autre optionImpossible de lire la propriété 'navCtrl' de null ionic3
je ViewChild
et de l'importer à partir @angular/core
,
faire @viewChild('myApp')
et a ajouté ce #myApp
-ion-nav
définir navCtrl: NavController
en classe.
Dans un constructeur, j'ai ajouté public push: Push
mais il ne peut pas le lire. dans ce temps, il me donne "Impossible de lire la propriété 'navCtrl' de null".
import { Component } from '@angular/core';
import { Platform, Alert, AlertController, NavController } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import firebase from 'firebase';
import { FirebaseProvider } from '../providers/firebase/firebase';
import { ViewProvider } from '../providers/view/view';
//pages
import { OpenPage } from '../pages/open/open';
import { AcceptOrderPage } from '../pages/accept-order/accept-order';
@Component({
templateUrl: 'app.html'
})
export class MyApp {
rootPage = OpenPage;
public marginClass:any="normal";
public available:boolean=true;
public orderId:string;
public alert: Alert;
constructor(platform: Platform, statusBar: StatusBar, splashScreen:
SplashScreen, public fb: FirebaseProvider,
public view: ViewProvider, private alertCtrl: AlertController, public
navCtrl: NavController) {
platform.ready().then(() => {
if (platform.is('ios')){
this.marginClass="iosMargin"
}
statusBar.styleDefault();
splashScreen.hide();
});
var config = {
apiKey: "AIzaSyDbn0bLyNh4emJXjVAKb_BsOyH7ahiY-3U",
authDomain: "cat-drivers.firebaseapp.com",
databaseURL: "https://cat-drivers.firebaseio.com",
projectId: "cat-drivers",
storageBucket: "cat-drivers.appspot.com",
messagingSenderId: "444330551162"
};
firebase.initializeApp(config);
var starCountRef =
firebase.database().ref('drivers/'+this.orderId+'/Orders');
starCountRef.on('value', function(snapshot) {
let alert = alertCtrl.create({
title: 'لديك طلب جديد؟',
buttons: [
{
text: 'رفض',
role: 'cancel',
handler:() => {
console.log('Cancel clicked');
}
},
{
text: 'قبول',
handler:() => {
console.log('Buy clicked');
navCtrl.push(AcceptOrderPage);
}
}
]
});
alert.present();
});
}
sendData(x){
this.view.localGet("uid").then((uid)=>{
this.fb.setData('drivers/'+uid+'/outOfService/',x)})
}
toggleState(item){
this.available=!this.available;
// console.log(this.available)
}
}