我正在創建一個自動完成組件,我試圖弄清楚我該如何處理該項目的「顯示」。我試過使用ng-content
並渲染該項目,但失敗。我想要的是給我們的方式ng-content
並將「數據」傳遞給子內容。當我嘗試傳遞內容時,它總是失敗,並說「項目」未定義。Angular 2自定義動態顯示自動完成<ng-content>
<input-auto-complete
[data]="searchResults"
(onItemSelected)="onItemSelected($event)"
(onSearch)="onSearch($event)">
{{item.Name}}
</input-auto-complete>
總之,我創造,做自動完成/搜索的輸入,但我不能想出一個好辦法,讓人們可以自定義他們想如何顯示結果。
我使用的離子,但我的模板的樣子:
<ion-searchbar
[(ngModel)]="search"
(ionInput)="updateSearch()"
(ionCancel)="dismiss()">
</ion-searchbar>
<ion-list>
<ion-item *ngFor="let item of data"
tappable
(click)="onItemSelected(item)">
<!-- i found a way to do something like this where they can pass a function to display -->
<ng-container *ngIf="!display">
<pre>{{item|json}}</pre>
</ng-container>
<ng-container *ngIf="display">
{{display(item)}}
</ng-container>
<!-- could not get this to work this would be my preference allow people to put whatever in here and it would get rendered and passed "item" -->
<!-- if i enable this it breaks <ng-content ></ng-content> ->
</ion-item>
</ion-list>
當這使得它崩潰,並表示無法讀取的未定義的名稱。它不會將任何內容傳遞給ng內容。
任何人都可以爲此提出解決方案嗎?讓我知道如果事情沒有意義。
項目渲染時可能尚未初始化。你試過'item。?Name' – pixelbits
我現在沒有使用任何「async」數據。我有'searchResults'硬編碼到一個數組。 – Nix