맞춤 구성 요소에 이온 식 기본 Camera 서비스를 주입하는 데 어려움을 겪고 있습니다. 느린로드 된 이오니아 페이지 (@IonicPage 데코레이터가있는 구성 요소)에 삽입하여 사용할 수 있지만이 서비스를 사용하는 별도의 구성 요소를 만들고 위 페이지에서 해당 구성 요소를 사용하려고하면 카메라 서비스가 항상 정의되지 않습니다.Angular4 구성 요소에서 이온 네이티브 서비스 사용
페이지와 구성 요소 모두에 대해 모듈 내에서 많은 조합을 시도해 보았습니다 (모듈 구조와 관련되어 있다고 생각 하듯이)하지만 그 중 아무 것도 나를 위해 일하지 않았습니다. 최신 코드가 아래에 있습니다. 맞춤 구성 요소에 삽입 된 카메라가 '정의되지 않음'으로 끝납니다.
기본적으로 내 목표는 고유 한 이온 서비스를 사용하고 다른 모듈/페이지에서 재사용 할 수있는 구성 요소 세트가있는 독립형 모듈을 갖는 것입니다. 홈페이지에 대한
모듈 선언 : 나는 아무런 문제 아래의 홈페이지 구성 요소에 카메라 서비스를 삽입 할 수
@NgModule({
declarations: [
HomePage
],
imports: [
IonicPageModule.forChild(HomePage),
IonicModule,
SharedModule, //this is module with some shared stuff
CustomModule
],
providers: [
Camera
]
})
export class HomePageModule {}
:
@IonicPage()
@Component({
selector: 'page-home',
templateUrl: 'home.html',
})
export class HomePage {
constructor(private camera: Camera) {}
}
내 CustomModule가 여기에 있습니다 :
@NgModule({
declarations: [
CustomComponent
],
exports: [
CustomComponent
],
imports: [
CommonModule,
SharedModule,
IonicModule.forRoot(CustomComponent)
],
providers: [
Camera
]
})
export class CustomModule {}
그리고 내 CustomComponent가 여기 있습니다 - 카메라 변수가 정의되지 않았습니다.
@Component({
selector: 'custom-component',
template: '<p>test</p>'
})
export class CustomComponent {
constructor(private camera: Camera) {}
}
내 구성 요소가 템플릿 컨텍스트를 사용하고 있었기 때문에 약간의 문제가 있었지만 문제는 조사를 통해 내 모듈을 약간 정리하는 데 도움이되었습니다. 참고로, IonicModule에는 'forChild'메서드가 없습니다. – Zyga