2016-12-06 86 views
0

我想获得的id在此基础上在URL角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') 
      ); 
    } 

上的数据,但我得到的错误 这.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