Javascript 在cordova摄像头插件的成功方法中调用angluar2方法

Javascript 在cordova摄像头插件的成功方法中调用angluar2方法,javascript,android,angular,cordova,android-camera,Javascript,Android,Angular,Cordova,Android Camera,我已经成功地将cordova插件集成到我的angular2项目中。 我调用了“takePicture”方法,它成功地调用了本机相机 public takePicture() { const srcType = navigator.camera.PictureSourceType.CAMERA; const options = this.setOptions(srcType); navigator.camera.getPicture(this.onSuccess, this

我已经成功地将cordova插件集成到我的angular2项目中。 我调用了“takePicture”方法,它成功地调用了本机相机

public takePicture() {
    const srcType = navigator.camera.PictureSourceType.CAMERA;
    const options = this.setOptions(srcType);
    navigator.camera.getPicture(this.onSuccess, this.onFail,options);
  }

  public onSuccess(imageData) {
    this.capture('data:image/jpeg;base64,' + imageData); <-- this doesn't work here I guess

  }

  public onFail(message) {
    alert('Failed because: ' + message);
    console.log(message);
  }
.....
public takePicture(){
const srcType=navigator.camera.PictureSourceType.camera;
const options=this.setOptions(srcType);
navigator.camera.getPicture(this.onSuccess、this.onFail、options);
}
公共onSuccess(图像数据){

this.capture('data:image/jpeg;base64,+imageData);将实例方法作为回调传递时,会丢失对象上下文,因此
this
的计算结果为
null

通过将方法调用包装到函数中,可以轻松修复此问题:

navigator.camera.getPicture(
    (data) => this.onSuccess(data),
    (message) => this.onFail(message),
    options
);

无法读取null的属性“capture”。我认为您需要首先检查是否有任何数据弹出inI检查imageData是否已填充。如果我调试,我会在方法中看到这是null。在编译时,我没有错误