RC5를 사용하여 간단한 Angular 2 재사용 가능한 구성 요소 (captcha 양식 필드)를 개발 중입니다. 이 모듈의 사용자가 @angular/forms
을 사용하지 않는 경우 (구성 요소가 자급 자족하기 때문에) 서비스를 제공하지 않기를 바랍니다. 내가 바람직 NgModule
에, 어떤 방법으로이 수출이 지금각도 2 : '@ angular/forms'에 조건부 종속성이있는 모듈
// Independent of '@angular/forms'
@Component({
selector: 'my-captcha',
template: `...`,
})
export class CaptchaComponent {}
// Depends on '@angular/forms'
@Directive({ selector: 'my-captcha' })
export class CaptchaValueAccessorDirective {}
:
의가에서 몇 가지 코드를 가져 보자
@NgModule({
declarations: [ CaptchaComponent ],
exports: [ CaptchaComponent ],
})
export class CaptchaModule {}
@NgModule({
declarations: [ CaptchaValueAccessorDirective ],
exports: [ CaptchaValueAccessorDirective ],
imports: [ FormsModule ],
})
export class CaptchaFormsModule {}
그것은 2 개 모듈의 1 - @angular/forms
의존성과 함께 그것없이 다른 하나.
그러나 대부분이 가정은 @angular/forms
과 함께 사용되며, 다른 경우는 가장 중요한 것입니다.
나는 그것을 보장 할 수 방법 :
- 사용자가 아닌
CaptchaComponent
가 사용 중일 때 (이 현재 달성) 이@angular/forms
에 의존 않는 - 사용자를로드하지 않아도
@angular/forms
에 의존 단지 내가 결국
사물의 구조에 따라 CaptchaFormsModule은 CaptchaModule의 부모 모듈이거나 두 모듈 모두 공통 상위의 하위 모듈이 될 수 있습니다. – estus
'CaptchaFormsModule'과'CaptchaNoFormsModule'과 같은 두 모듈을 통해 원하는 것을 쉽게 얻을 수 있습니다. 각각 CaptchaComponent를 제공합니다. 따라서 사용자는 그 중 하나만 요구하면되고 나머지 하나는 나무 떨림으로 제거됩니다 – Dethariel
'captcha-package/lib/captcha-no와 같은 공용 항목을 직접 가져올 수있는 좋은 점을 개인적으로 생각합니다. -forms'. 이 경우 나무 떨림에 의존 할 필요가 없습니다. – estus