@Viewchild не работает в angular - PullRequest
0 голосов
/ 06 августа 2020

родительский и дочерний компоненты. Я не могу вызвать метод дочернего компонента из родительского компонента для передачи свойства.

export class PruebabookComponent implements OnInit {

  public identity;
  public token;
  public books: Book[];
  public totalPages;
  public page;
  public next_page;
  public prev_page;
  public number_pages;
  public url: string;
  public bookId;
  public book: Book;
  public _id;
  public takeId;
  @ViewChild(UpdatebookComponent, {static: false}) updateBook: UpdatebookComponent;

  constructor(
    private router: Router,
    private route: ActivatedRoute,
    private userservice: UserService,
    private bookservice: BookService
  ) {
     this.url = global.url;
     this.book = new Book('', '', '', '', 1, '');


}
  


 getId(id)
 {
   // recoger id del libro
   this.bookId = id ;
   this.updateBook.takeId(this.bookId); // here is the ERROR takeId is undefined
   console.log(id);

 }

PruebabookComponent - это родительский компонент, updatebookcomponent - дочерний компонент.

в компоненте updatebook. У меня есть метод

takeId(id)
{
// this.idBook = idbook;
console.log(id);
}

Если я помещаю <app-updatebook></app-updatebook> в родительский html @viewchild, работает, но я не хочу показывать дочерний html на родительском html.

pruebabook.component

<div class="col-lag-12">


  <ul class="list-group">
    <li class="list-group-item" *ngFor="let book of books; let i = index">
      <div class="avatar_book">
        <img src="{{ url + 'avatar/' + book.image }}" alt="">
      </div>
    <h4>
      <a [routerLink]="['/inicio']">
        {{book.title}}
      </a>
    </h4>
    <p>{{book.description}}</p>
    <p>{{book.author}}</p>
    <p>{{book.stock}}</p>
    <p>{{book.price}} $</p>
    <a [routerLink]="['/updatebook', i]" (click)="getId(book._id)" class="btn btn-primary float-right">update</a>

   </li>
  </ul>
</div>

1 Ответ

1 голос
/ 06 августа 2020

@ ViewChild не работает для динамических c загруженных компонентов.

Вы можете взаимодействовать с динамическим c загруженным компонентом через параметры службы или маршрутизатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...