我试图从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
。