Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 错误TS2554:应为2个参数,但得到1个_Angular_Typescript - Fatal编程技术网

Angular 错误TS2554:应为2个参数,但得到1个

Angular 错误TS2554:应为2个参数,但得到1个,angular,typescript,Angular,Typescript,我将我的爱奥尼亚应用程序从爱奥尼亚3升级到爱奥尼亚4,这给了我相机问题。此错误显示在控制台上的爱奥尼亚发球 src/app/register/register.page.ts中出错(50,4):错误TS2554: 应为2个参数,但得到1个。 [ng]src/app/register/register.page.ts(53,63):错误TS2749:“Camera”引用了一个值,但在这里用作类型 下面是寄存器。ts import { Component, ViewChild, OnInit } f

我将我的爱奥尼亚应用程序从爱奥尼亚3升级到爱奥尼亚4,这给了我相机问题。此错误显示在控制台上的爱奥尼亚发球

src/app/register/register.page.ts中出错(50,4):错误TS2554: 应为2个参数,但得到1个。 [ng]src/app/register/register.page.ts(53,63):错误TS2749:“Camera”引用了一个值,但在这里用作类型

下面是寄存器。ts

import { Component, ViewChild, OnInit } from '@angular/core';
import { ScrollDetail } from '@ionic/core';
import { NavController, LoadingController, ToastController } from '@ionic/angular';
import { Http, Response, Headers, RequestOptions }  from "@angular/http";
import { map } from 'rxjs/operators';
import { Observable } from 'rxjs/Observable';
import { SignaturePad } from 'angular2-signaturepad/signature-pad';
import { Storage } from '@ionic/storage';
import { Camera, CameraOptions } from '@ionic-native/camera';

@Component({
  selector: 'app-register',
  templateUrl: './register.page.html',
  styleUrls: ['./register.page.scss'],
})
export class RegisterPage implements OnInit {

showToolbar = false;
capturedSnapURL:string;




onScroll($event: CustomEvent<ScrollDetail>) {
    if ($event && $event.detail && $event.detail.scrollTop) {
      const scrollTop = $event.detail.scrollTop;
      this.showToolbar = scrollTop >= 225;
    }
}

 signature = '';
 isDrawing = false;

  options: CameraOptions = {
    quality: 100,
    destinationType: this.camera.DestinationType.DATA_URL,
    encodingType: this.camera.EncodingType.JPEG,
    mediaType: this.camera.MediaType.PICTURE,
    cameraDirection:0
  }

  clickedImagePath:any;

  @ViewChild(SignaturePad) signaturePad: SignaturePad;


   constructor(public navCtrl: NavController, private camera: Camera, private http: Http, public loading: LoadingController, public storage: Storage, public toastCtrl: ToastController) {

  }


  ngOnInit() {
  }


ionViewDidEnter() {
    this.signaturePad.clear()
    this.storage.get('savedSignature').then((data) => {
      this.signature = data;
    });
  }


  drawComplete() {
    this.isDrawing = false;
  }

  drawStart() {
    this.isDrawing = true;
  }

  savePad() {
    this.signature = this.signaturePad.toDataURL();
    this.storage.set('savedSignature', this.signature);
    this.signaturePad.clear();
   /* let toast = this.toastCtrl.create({
      message: 'New Signature saved.',
      duration: 3000
    });
    toast.present();*/
  }

  clearPad() {
    this.signaturePad.clear();
  }


clickImage(){
    this.camera.getPicture(this.options).then((imageData) => {
      // imageData is either a base64 encoded string or a file URI
      // If it's base64 (DATA_URL):
      let base64Image = 'data:image/jpeg;base64,' + imageData;
      this.clickedImagePath = 'data:image/jpeg;base64,' + imageData;
     }, (err) => {
      // Handle error
     });
  }



}
从'@angular/core'导入{Component,ViewChild,OnInit};
从'@ionic/core'导入{ScrollDetail};
从'@ionic/angular'导入{NavController,LoadingController,ToastController};
从“@angular/Http”导入{Http,Response,Headers,RequestOptions};
从“rxjs/operators”导入{map};
从“rxjs/Observable”导入{Observable};
从“angular2 SignaturePad/SignaturePad”导入{SignaturePad};
从'@ionic/Storage'导入{Storage};
从'@ionic native/Camera'导入{Camera,CameraOptions};
@组成部分({
选择器:“应用程序寄存器”,
templateUrl:'./register.page.html',
样式URL:['./register.page.scss'],
})
导出类RegisterPage实现OnInit{
showToolbar=false;
capturedSnapURL:string;
onScroll($event:CustomEvent){
if($event&&$event.detail&&$event.detail.scrollTop){
常量scrollTop=$event.detail.scrollTop;
this.showToolbar=scrollTop>=225;
}
}
签名='';
isDrawing=false;
选项:CameraOptions={
质量:100,
destinationType:this.camera.destinationType.DATA\u URL,
编码类型:this.camera.encodingType.JPEG,
mediaType:this.camera.mediaType.PICTURE,
摄影机方向:0
}
单击图像路径:任意;
@ViewChild(SignaturePad)SignaturePad:SignaturePad;
构造函数(公共navCtrl:NavController,专用摄影机:摄影机,专用http:http,公共加载:加载控制器,公共存储:存储,公共toastCtrl:ToastController){
}
恩戈尼尼特(){
}
ionViewDidEnter(){
this.signaturePad.clear()
this.storage.get('savedSignature')。然后((数据)=>{
这个签名=数据;
});
}
drawComplete(){
this.isDrawing=false;
}
drawStart(){
this.isDrawing=true;
}
savePad(){
this.signature=this.signaturePad.toDataURL();
this.storage.set('savedSignature',this.signature);
此.signaturePad.clear();
/*让toast=this.toastCtrl.create({
消息:“已保存新签名”,
持续时间:3000
});
敬酒*/
}
clearPad(){
此.signaturePad.clear();
}
单击图像(){
this.camera.getPicture(this.options)。然后((imageData)=>{
//imageData是base64编码的字符串或文件URI
//如果是base64(数据URL):
让base64Image='data:image/jpeg;base64'+imageData;
this.clickedImagePath='data:image/jpeg;base64'+imageData;
},(错误)=>{
//处理错误
});
}
}

有人能告诉我我做错了什么吗?

您只需要在app.module.ts的提供商阵列中包含摄像头

import { Camera } from '@ionic-native/camera';

providers: [
   Camera 
]

使用此选项导入相机插件

从'@ionic native/Camera/ngx'导入{Camera,camerapoptions};
在HTML中,为SignaturePad组件提供一个Id(如“componentId”),并将视图组件代码更改为

@ViewChild('componentId',{static:true})signaturePad:signaturePad;

您是否已将摄像头导入正确的模块(可能是您的app.module)并声明了它?