【发布时间】:2016-06-01 11:33:04
【问题描述】:
尝试使用 async 管道通过角度 2 组件中的流在窗口调整大小时呈现窗口大小:
<h2>Size: {{size$ | async | json}}</h2>
const windowSize$ = new BehaviorSubject(getWindowSize());
Observable.fromEvent(window, 'resize')
.map(getWindowSize)
.subscribe(windowSize$);
function getWindowSize() {
return {
height: window.innerHeight,
width: window.innerWidth
};
}
@Component({
selector: 'my-app',
providers: [],
template: `
<div>
<h2>Size: {{size$ | async | json}}</h2>
</div>
`,
directives: []
})
export class App {
size$ = windowSize$.do(o => console.log('size:', o));
constructor() { }
}
但是组件只渲染初始状态而忽略流更新。 如果您打开控制台,在调整窗口大小时,您将看到来自同一流的更新。
无法理解我在这里缺少什么。
这是plunker
【问题讨论】:
标签: angular rxjs rxjs5 angular2-changedetection