从异步列表更新 UI html
Update UI html from async list
我正在努力理解我所做的。
我有一个异步项目列表(每次都不同)。我正在尝试使用 *ngFor
将它们中的每一个设置为不同的 div
details.html
<div class="container row">
<div id="letter">
<div id="lines_container">
<div *ngFor='let sentence of sentences' id="line_{{i}}" class="new-line glow">
{{sentence.name}}
</div>
</div>
</div>
</div>
DetailsComponent.ts
@Component({
selector: 'app-details',
templateUrl: 'details.html',
styleUrls: ['details.scss']
})
export class DetailsComponent implements OnInit {
sentences: string[];
constructor(private data: DetailsService, private ravenDataService: RavenDataService) { }
ngOnInit(): void {
this.data.sentences.subscribe(sentences => {
console.log(sentences);
this.sentences = sentences;
});
}
}
我可以在几秒钟后看到打印了我的句子的日志,但它没有更新我的 HTML 页面。
我也尝试使用异步管道但没有成功
<div *ngFor='let sentence of sentences | async' id="line_{{i}}" class="new-line glow">
我认为这只是一个打字错误,请尝试使用异步管道,不要使用订阅。
@Component({
selector: 'app-details',
templateUrl: 'details.html',
styleUrls: ['details.scss']
})
export class DetailsComponent implements OnInit {
sentences$;
constructor(private data: DetailsService, private ravenDataService: RavenDataService) { }
ngOnInit(): void {
this.sentences$ = this.data.sentences
}
}
和
<div *ngFor='let sentence of sentences$ | async' id="line_{{i}}" class="new-line glow">
总是在最后用 $ 符号标记你的流,这是一个常见的约定
我正在努力理解我所做的。
我有一个异步项目列表(每次都不同)。我正在尝试使用 *ngFor
div
details.html
<div class="container row">
<div id="letter">
<div id="lines_container">
<div *ngFor='let sentence of sentences' id="line_{{i}}" class="new-line glow">
{{sentence.name}}
</div>
</div>
</div>
</div>
DetailsComponent.ts
@Component({
selector: 'app-details',
templateUrl: 'details.html',
styleUrls: ['details.scss']
})
export class DetailsComponent implements OnInit {
sentences: string[];
constructor(private data: DetailsService, private ravenDataService: RavenDataService) { }
ngOnInit(): void {
this.data.sentences.subscribe(sentences => {
console.log(sentences);
this.sentences = sentences;
});
}
}
我可以在几秒钟后看到打印了我的句子的日志,但它没有更新我的 HTML 页面。 我也尝试使用异步管道但没有成功
<div *ngFor='let sentence of sentences | async' id="line_{{i}}" class="new-line glow">
我认为这只是一个打字错误,请尝试使用异步管道,不要使用订阅。
@Component({
selector: 'app-details',
templateUrl: 'details.html',
styleUrls: ['details.scss']
})
export class DetailsComponent implements OnInit {
sentences$;
constructor(private data: DetailsService, private ravenDataService: RavenDataService) { }
ngOnInit(): void {
this.sentences$ = this.data.sentences
}
}
和
<div *ngFor='let sentence of sentences$ | async' id="line_{{i}}" class="new-line glow">
总是在最后用 $ 符号标记你的流,这是一个常见的约定