Har*_*jan 1 typescript ionic2 ionic3 angular
当我从firebase获取数据时,我正在尝试重定向.如果它为null或空,则无需重定向.
我正在尝试使用this.navCtrl.push(ProspectPage);但不知道为什么它不工作它返回一个错误
TypeError: this is null
这是我的代码,请检查一下,让我知道我在这里做错了什么.
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { ProspectPage } from '../prospect/prospect';
import * as firebase from 'firebase';
@Component({
selector: 'page-credentials',
templateUrl: 'credentials.html'
})
export class CredentialsPage {
constructor(public navCtrl: NavController) {
}
register(params){
// this.navCtrl.push(ProspectPage); // if i wrote here then it works
ref.orderByChild("ssn").equalTo(1234).on("value", function(snapshot) {
if(snapshot.val())
{
this.navCtrl.push(ProspectPage);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
看register()有一条评论.如果我this.navCtrl.push(ProspectPage);在函数的开头添加,那么它的工作原理.但是当我从firbase获取数据时它应该工作.
在这里,是我的HTML代码.
<button id="credentials-button1" ion-button color="stable" block on-click="register()"> Lets go! </button>
Run Code Online (Sandbox Code Playgroud)
你的问题的答案是箭头功能:
箭头函数表达式具有比函数表达式更短的语法,并且不绑定它自己的this,arguments,super或new.target.
register(params) {
ref.orderByChild("ssn").equalTo(1234).on("value", (snapshot) => {
if(snapshot.val()) {
this.navCtrl.push(ProspectPage);
}
});
}
Run Code Online (Sandbox Code Playgroud)
注意(snapshot) => {...}而不是function(snapshot) {...}
| 归档时间: |
|
| 查看次数: |
373 次 |
| 最近记录: |