假设我有2张桌子;书和作者。作者表中包含对书籍ID的引用。
在Angular中,我想遍历作者,然后遍历该作者的书:
<div id="authors" *ngFor="let author of authors">
<h1>{{author.name}}</h1>
<div id="books" *ngFor="let book_id of author.books" ng-init="let book = getBook(book_id)">
<h2>{{book.title}}</h2>
.....
</div>
</div>
这里的问题是ng-init不在Angular 2+中。我需要能够运行一个函数,以便能够从数据库中获得这本书,因为作者仅持有该书的引用。
我的问题是,在这种情况下什么是最佳实践?还是该问题所在?在这种情况下,我应该在早期阶段更好地处理数据?我这样做的原因是,如果我不需要某种类型的书,则可以隐藏(使用ngIf)它们,而无需调用DB来获取书(这样更有效?)。
我对指令解决方案提出了一些质疑,因为我很惊讶这并没有内置在Angular中,因为这似乎是一个潜在的普遍问题,除非他们希望您使用更好的解决方案。
答案 0 :(得分:0)
您可以像在https://alligator.io/angular/ngif-new-features-angular4/中显示的那样使用“ ngIf”
<div id="authors" *ngFor="let author of authors">
<h1>{{author.name}}</h1>
<div id="books" *ngFor="let book_id of author.books">
<ng-container *ngIf="getBook(book_id);let book">
<h2>{{book.title}}</h2>
.....
<ng-container>
</div>
</div>
但是在这个想法之间选择并转换数组