0
问题是,我想在alert(按钮)中创建一个事件,我想让它移动到另一个页面,并且此按钮不再存在于HTML中, (点击)功能,当我运行它,给我没有提供者错误“没有提供NavController”。 我尝试另一种选择无法读取属性'navCtrl'null ionic3
我用ViewChild
和@angular/core
导入,
使@viewChild('myApp')
,并将此#myApp
到ion-nav
类定义navCtrl: NavController
。
在构造函数中,我添加了public push: Push
,但它无法读取它。 在这个时候,它给了我“无法读取属性'空'的navCtrl'”。
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)
}
}