1

データを取得する次のサービスがあります。私は期待バックエンドからフォームの値を初期化する

export class UserService { 
user: User 
    private userSource = new Subject<User>(); 
    currentUser = this.userSource.asObservable(); 

constructor(http: Http){} 

resolve(route: ActivatedRouteSnapshot){ 
     return this.http.get('/getUserData') 
     .map(output => { 
      console.log("IN RESOLVE. OUTPUT = "); 
      console.log(output as User);  // Getting output here as expected 
      return output as User; 
     }) 
}} 

ユーザーモデル

export clsss User { 
constructor(public Basic: {mob: string; email: string}, 
     public other: {abc: string; xyz: string }) {} 

BasicComponent.ts

export class BasicComponent implements OnInit { 
basicForm: FormGroup; 
user: User; 

constructor(private fb: FormBuilder, public userService: UserService) { } 

ngOnInit() { 
     this.userService.currentUser.subscribe(
      result => { 
       console.log(result) 
      this.user = result 
      }) 
     this basicForm = this.fb.group({ 
       mob: [this.user.mob, Validators.compose([Validators.required, Validators.minLength(10)], 
       email: ['', Validators.compose([Validators.required, EmailValidator.isValidMailFormat])] 
     }) 
}} 

私はこれらの値が事前に入力することにしたいなどのデータを取得しています。しかし、userオブジェクトはundefinedです。 これは最小限のコードです。私はBasicComponentのような他のコンポーネントを持っていて、それらのそれぞれはformsを持っています。私はすべての依存関係&他の宣言を含めました。私はユーザーオブジェクトを取得していない以外は正常に動作していますFormbuilder

私が紛失しているものは何ですか?

答えて

0
export class BasicComponent implements OnInit { 
basicForm: FormGroup; 
user: User; 

constructor(private fb: FormBuilder, public userService: UserService) { } 

ngOnInit() { 
     let __self = this; 
     this.userService.currentUser.subscribe(result => { 
      console.log(result) 
      __self.user = result; 
      __self contact = __self.fb.group({ 
        mob: [__self.user.mob, Validators.compose([Validators.required, Validators.minLength(10)], 
        email: ['', Validators.compose([Validators.required, EmailValidator.isValidMailFormat])] 
       }); 
      }); 
}} 
+0

差があるしてみてください? –

+0

がエラー - > 'formgroupが定義されていません 'のために変更されました – anshuVersatile

+0

エラー:_formGroupはFormGroupインスタンスを予期します。 in_ –

0

この1つの方法

ngOnInit() { 
     // Build the form 
     this.basicForm = this.fb.group({ 
      'business_name' : ['', Validators.required], 
      'email' : ['', Validators.required], 
     }); 
     // Fetch data for the view 
     this.userService.currentUser.subscribe(
      result => { 
       console.log(result) 
      this.user = result 

      this.basicForm.setValue({ 
       business_name: response.data.business.business_name, 
       email: response.data.business.email 
      }); 


     }) 
    } 
+0

これも働かない:( –

関連する問題