2017-01-23 2 views
0

О, уважаемые угловые2, почему они почему ...Angular2 - как отобразить данные, которые поступают позже

Мой массив git_list прибывает позже. Почему ошибка при использовании async? Если я не использую async, то когда данные не поступают, данные не отображаются.

EXCEPTION: Uncaught (in promise): Error: Error in ./GitaccountsComponent class GitaccountsComponent - inline template:26:17 caused by: Invalid argument '' for pipe 'AsyncPipe' 
Error: Invalid argument '' for pipe 'AsyncPipe' 

<md-grid-tile *ngFor="let item of git_list | async" [colspan]="1" [rowspan]="1"> 


</md-grid-tile> 




git_list = [ 
    { 
    "git_account": "gggggggggg", 
    "git_host": "bitbucket" 
    }, 
    { 
    "git_account": "yiofysdgsdgfs", 
    "git_host": "bitbucket" 
    }, 
    { 
    "git_account": "yyyyyyyy", 
    "git_host": "bitbucket" 
    }, 
    { 
    "git_account": "TTTTT", 
    "git_host": "github" 
    } 
] 
+1

Можете ли вы добавить строку назначения 'git_list' в свои ts/js? – echonax

+0

Вы пытались добавить ngIf, т. Е. ''? – AngularChef

+2

'| async' не для данных, которые поступают позже, это только для данных типа 'Observable' или' Promise'. Если 'git_list' не является' Observable' или 'Promise',' | async' не может работать. –

ответ

0

Просто вставьте *ngIf и он должен работать, так что данные будут размещены, когда он приходит и не выдаст ошибку. Вы должны были бы сделать, например, дополнительный ДИВ здесь, как две директивы не могут быть помещены в один тег, и у вас уже есть и *ngFor в вашем md-grid-tile, я бы просто добавить дополнительный DIV так:

<div *ngIf="git_list" > 
    <md-grid-tile *ngFor="let item of git_list" [colspan]="1" [rowspan]="1"> 
    <!-- Your code here ---> 
    </md-grid-tile> 
</div> 

Надежда это помогает!

Смежные вопросы