이미 생성기에서 생성 된 일부 파일이 있고 일부 내용의 템플릿을 기반으로 이러한 파일에 내용을 삽입하는 일부 하위 생성기를 만들려고한다고 가정합니다.Yeoman 생성기로 생성 된 파일에 템플릿 기반 콘텐트를 삽입하는 효율적이고 간단한 방법
- applicatif 층
- 직업 층
- 비즈니스 대리인 층 :
목표 (타이프 작성된 Angular2 앱) 3 층으로 이루어지는 다층 구조의 발전기를 만들 수있다
각 생성기는 모듈 파일, 인터페이스 파일 등을 구성하는 모든 파일을 생성해야합니다.이 프로세스에서 생성 된 주요 3 개의 파일은 다음과 같습니다 이 E :
hero.applicatif.ts :
import { Injectable } from '@angular/core';
import { IHeroApplicatif } from './hero.applicatif.interface';
import { HeroMetier } from '../metier/hero.metier';
@Injectable()
export class HeroApplicatif implements IHeroApplicatif {
constructor(private heroMetier: HeroMetier) {}
}
hero.metier.ts :
import { Injectable } from '@angular/core';
import { IHeroMetier } from './hero.metier.interface';
import { HeroBusinessDelegate } from '../business-delegate/hero.business-delegate';
@Injectable()
export class HeroMetier implements IHeroMetier {
constructor(private heroBusinessDelegate: HeroBusinessDelegate) {}
}
hero.business-delegate.ts :
import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import { IHeroBusinessDelegate } from './hero.business-delegate.interface';
@Injectable()
export class HeroBusinessDelegate implements IHeroBusinessDelegate {
constructor(private http: Http) {}
}
이러한 파일을 템플릿을 기반으로 생성해도 문제가 발생하지 않습니다. 하지만 사용자가 메서드 이름을 입력하라는 하위 생성자, 반환 형식 및 매개 변수가 필요하므로 하위 생성기는 이전에 생성 된 각 파일을 수정하여 각 레이어에 대한 코드를 삽입해야합니다. 다음 층.
hero.applicatif.ts :
import { Injectable } from '@angular/core';
import { IHeroApplicatif } from './hero.applicatif.interface';
import { HeroMetier } from '../metier/hero.metier';
@Injectable()
export class HeroApplicatif implements IHeroApplicatif {
constructor(private heroMetier: HeroMetier) {}
getHero(id:number): Promise<any> {
return this.heroMetier.getHero(id);
}
}
을
는 서브 발생기 같이 수정 될 필요가 입력 getHero라는있어서, 상기 (3 개) 파일의 내용을 사용자에게 프롬프트를 가정
hero.metier.ts :
import { Injectable } from '@angular/core';
import { IHeroMetier } from './hero.metier.interface';
import { HeroBusinessDelegate } from '../business-delegate/hero.business-delegate';
@Injectable()
export class HeroMetier implements IHeroMetier {
constructor(private heroBusinessDelegate: HeroBusinessDelegate) {}
getHero(id:number): Promise<any> {
return this.heroBusinessDelegate.getHero(id);
}
}
,
hero.business-delegate.ts :
import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import { IHeroBusinessDelegate } from './hero.business-delegate.interface';
@Injectable()
export class HeroBusinessDelegate implements IHeroBusinessDelegate {
constructor(private http: Http) {}
getHero(id:number): Promise<any> {
return this.http.get(...).toPromise();
}
}
그렇게하는 최신 방법까지 안전하고 간단한 무엇입니까?
콘텐츠를 삽입 할 파일의 종류는 무엇입니까? 새로운 콘텐츠를 삽입 할 파일 내용 + 삽입하려는 내용 + –
@SimonBoudrias 예를 제공하기 위해 게시물을 편집합니다. – Faly
@SimonBoudrias 파일의 예가 이제 제공됩니다. 게시하다 – Faly