【发布时间】:2016-06-24 04:45:24
【问题描述】:
在ngOnInit() 我有“return x”,我想将它放入Observable,然后执行转换并以相同的格式再次返回。
这里是工作插件:http://plnkr.co/edit/z26799bSy17mAL4P5MiD?p=preview
import {Component} from '@angular/core'
import { Observable } from 'rxjs'
import * as Rx from 'rxjs/Rx'
@Component({
selector: 'my-app',
providers: [],
template: `
<div>
<h2>{{name}}</h2>
<button (click)="addToArray()">Add</button>
<ul>
<li *ngFor="let item of data$ | async">{{ item }}</li>
</ul>
</div>
`,
directives: []
})
export class App {
data = ["one","two","three"]
data$: Observable<Array<string>>;
constructor() {
this.name = 'Angular2 array to observable example'
}
ngOnInit() {
this.data$ = Rx.Observable.of(this.data)
.map(data => {
let x = data
x.push("4")
///
/// TRANSFORM X IN THIS SECTION OF THE CODE
/// HERE BY PUTTING IT INTO OBSERVABLE
/// PERFORMING TRANSFORMATIONS AND
/// RETURNING THE DATA TO BE RENDERED IN TEMPLATE
///
return x
})
}
addToArray() {
this.data.push('more numbers')
}
}
【问题讨论】:
-
你有什么问题?
-
你可以看一下代码,有注释掉的部分。变量 x 应该是可观察的,然后是 .map 或类似的东西,然后作为 x 数组返回,它将通过 return 语句传播到模板。
-
但是你想用它实现什么?为什么需要将 Array 转换为 Observable
只是为了将其转换回 Array? -
因为我想通过 Observable 机器 (rxjs) 使用该强大的工具集来转换 Array 中的数据,然后当我完成后,只需将其返回给 Array 即可提供模板通过 Observable 和 |异步的。就在“return x”之前似乎是完美的地方。
标签: typescript angular rxjs rxjs5 reactive-extensions-js