离子2使用来自另一类的函数



我试图从home.ts中的camera.ts使用函数tokepicture(),但是我不确定如何做,我遇到了此错误错误。TabSpage类TabSpage-造成的:没有摄像机的提供商!几天前我刚开始学习这种语言

,任何帮助都将不胜感激。

home.ts

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import {NavParams} from 'ionic-angular';
import { CameraPage } from '../../pages/camera/camera';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
 constructor(public navCtrl: NavController,public navParams: NavParams,      private camera: CameraPage) {
}
 goCam(){
this.camera.takePicture();

}
}

camera.ts

import { Component } from '@angular/core';
import {Camera} from 'ionic-native';
import { NavController } from 'ionic-angular';

@Component({
templateUrl: 'camera.html'
})
export class CameraPage {
public base64Image: string;
constructor(public navCtrl: NavController) {

 }
takePicture(){
 Camera.getPicture({
   destinationType: Camera.DestinationType.DATA_URL,
   targetWidth: 1000,
   targetHeight: 1000
 }).then((imageData) => {
   // imageData is a base64 encoded string
   this.base64Image = "data:image/jpeg;base64," + imageData;
 }, (err) => {
   console.log(err);
  });
}
 ionViewWillEnter(){
  this.takePicture();
}
 }

tabs.ts

    import { Component } from '@angular/core';
import { HomePage } from '../home/home';
import { CameraPage } from '../camera/camera';
import { ContactPage } from '../contact/contact';
@Component({
  templateUrl: 'tabs.html'
})
export class TabsPage {
  // this tells the tabs component which Pages
  // should be each tab's root Page
  tab1Root: any = HomePage;
  tab2Root: any = CameraPage;
  tab3Root: any = ContactPage;
  constructor() {
  }
}

您不能像提供者一样将页面传递给另一个页面(基本上是在构造函数中实例化)

您需要建立一个提供商/服务类(即camera.service.ts)来提供服务方法takePicture。然后两个页面都可以使用该功能。理想情况下,页面不应保持任何跨页状态。

您看到的特定错误发生,因为所有提供商都需要在providers节下的app.module.ts中出现。Ionic试图在app.module.ts中声明但找不到的提供商中搜索CameraPage

相关内容

  • 没有找到相关文章

最新更新