在Angular中,当我们想要在模板中使用可观察对象时,通常会使用异步管道。但是,在处理包含对象中的数组的可观察对象时,会遇到一些问题。
例如,如果我们有一个包含数组的对象,并将其存储在可观察对象中,我们可能会尝试在模板中使用async管道来订阅该对象,并将其传递给一个子组件。 但是,由于数组是对象的一部分,因此我们需要访问对象属性以获取该数组。我们可以使用嵌套的异步管道来解决这个问题。
以下是一个示例,它演示了如何在可观察对象中处理数组中的对象:
在组件中,我们创建一个可观察对象,并将其存储在迭代器属性中:
import { Component } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
@Component({
selector: 'my-app',
template: `
{{ item.name }}
`
})
export class AppComponent {
data$: Observable;
constructor() {
this.data$ = Observable.of([{
name: 'List 1',
items: [{ name: 'Item 1' }, { name: 'Item 2' }]
}, {
name: 'List 2',
items: [{ name: 'Item 3' }, { name: 'Item 4' }]
}]);
}
}
在模板中,我们使用嵌套的异步管道来订阅可观察对象中的数组中的对象属性:
import { Component, Input } from '@angular/core';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'app-child',
template: `
上一篇:Angular异步调用
下一篇:Angular异步管道不正确更新
相关内容