Невозможно передать данные в ng-bootstrap с помощью @input - PullRequest
0 голосов
/ 01 октября 2019

У меня есть компонент со списком всех пользователей, и когда мы нажимаем edit или add new, я открываю тот же модальный блок с формой для редактирования или добавления нового пользователя. Если я хочу отредактировать пользователя, мне нужно показать данные пользователя в форме в модальном поле. Мой модальный блок находится в другом компоненте, и мне нужно передать данные модальному.

В моем user.component я получаю данные для выбранного пользователя, и я устанавливаю его на

const modalRef = this.modalService.open(AddComponent);

this.userService.getUserDetail(username).subscribe((response: UserModel) => {
    this.user = response;
    modalRef.componentInstance.user = this.user;
  });

И вmodal box component Я установил

export class AddComponent {
      addNewUserForm: FormGroup;
      @Input() user;

constructor (...){
      console.log(this.user) //get undefined
  }
}

Я также пытаюсь установить console.log(this.user) в ngOnInit и ngAfterViewInit, но всегда получаю undefined

Спасибо за помощь ...

Ответы [ 2 ]

1 голос
/ 01 октября 2019

Используйте ngOnInit вместо constructor

ngOnInit() {
      console.log("hihi", this.name)
   }

Привет, я сделал рабочий Stackbligz

0 голосов
/ 01 октября 2019

Хорошо, вот ответ, если я положу const modalRef = this.modalService.open(AddComponent); внутрь subscribe Я получу данные с ngOnInit(){console.log(this.user)}

this.userService.getUserDetail(username).subscribe((response: UserModel) => {
this.user = response;

const modalRef = this.modalService.open(AddComponent); //i put this here
modalRef.componentInstance.user = this.user;
});

и в add.component.ts

export class AddComponent implements OnInit{
  addNewUserForm: FormGroup;
  @Input() user;

ngOnInit(){
  console.log(this.user);
 }
}
...