2016-12-06 15 views
0
私は追加モードで作業しますが、編集

角度2観察できる問題

export class GradeComponent implements OnInit { 

    public isNew:boolean=true; 
    public frmGrade: FormGroup; 
    public subscription:any; 
    public oldGrade:Grade; 

    constructor(
    private formBuilder:FormBuilder , 
    private gradeService:GradeService, 
    private router:Router, 
    private activatedRoute:ActivatedRoute 
) { } 


ngOnInit() { 
    if(typeof this.activatedRoute.snapshot.params['id'] ==='undefined'){ 
     this.frmGrade = this.formBuilder.group({ 
     grade: ['', Validators.required], 
     description: '' 
     }); 
    }else{ 
     this.setForUpdate(); 
    } 
    } 

    private setForUpdate(){ 
     this.isNew=false; 
     this.gradeService 
      .getOneGrade(this.activatedRoute.snapshot.params['id']) 
      .subscribe(
       data => { 
        this.oldGrade = data, 
        this.frmGrade = this.formBuilder.group({ 
         grade: [this.oldGrade.grade, Validators.required], 
         description: this.oldGrade.description 
        }); 
       }, 
       err => console.error(err), 
       () => console.log('done') 
      ); 
    } 

のためのエラーを取得したURL

に設定されているIDに基づいてデータを取得しようとしていますが、私はエラー これを取得しています

.formBuilderはこれを処理する方法が未定義です。

+1

'this.formBuilder'はどこからも出ません;-)それはなぜそこにあるべきだと思いますか? –

+0

レコードを更新するために、私はidから古いデータを取得してからfrmに割り当てたい – Ash

+0

どのような形式ですか? 。 。 .. –

答えて

1

FormBuilderは注入可能なサービスで、Dependancy Injectionでインスタンスを取得するだけです。

は、あなたのクラスでこれを追加します。

constructor(private formBuilder: FormBuilder) {} 

そして、あなたは行く準備ができています。

+0

すでに追加されています – Ash

+0

コード全体を提供していない場合は、推測できません。あなたの質問にお答えください。 – Sakuto

1
export class GradeComponent implements OnInit { 

    public isNew:boolean=true; 
    public frmGrade: FormGroup; 
    public subscription:any; 
    public oldGrade:Grade; 

    constructor(
    private formBuilder:FormBuilder , 
    private gradeService:GradeService, 
    private router:Router, 
    private activatedRoute:ActivatedRoute 
) { } 


ngOnInit() { 

    this.frmGrade = this.formBuilder.group({ 
     grade: ['', Validators.required], 
     description: '' 
     }); 

    if(typeof this.activatedRoute.snapshot.params['id'] !=='undefined') { 
    this.setForUpdate(); 

    } 
    } 

    private setForUpdate(){ 
     this.isNew=false; 
     this.gradeService 
      .getOneGrade(this.activatedRoute.snapshot.params['id']) 
      .subscribe(
       data => { 
        this.oldGrade = data, 
        this.frmGrade = this.formBuilder.group({ 
         grade: [this.oldGrade.grade, Validators.required], 
         description: this.oldGrade.description 
        }); 
       }, 
       err => console.error(err), 
       () => console.log('done') 
      ); 
    } 
+0

これはチャンピオンのように働いていただきありがとうございます! :) – Ash