【发布时间】:2017-03-02 11:05:44
【问题描述】:
我有一个使用 Material Design Lite 的 angular2 组件,但复选框(可能还有其他)元素在第一次加载组件时未正确呈现,而如果我与复选框交互,则正确应用了 mdl 样式。在我的组件中,我有
ngAfterViewInit() {
componentHandler.upgradeDom();
}
但这并不能解决我的问题,所以我使用 setTimeout 在服务返回一些数据后立即执行。这似乎可行,但建议这样做吗?
this.service.getDetails(this.id)
.finally(() => {
setTimeout(() => {
componentHandler.upgradeDom();
}, 10);
})
.subscribe((details) => {
this.details = details;
});
【问题讨论】:
-
它在那里,所以它可以使用。它只是您想要使用的地方以及如何使用!
-
也许你可以试试
changeDetection: ChangeDetectionStrategy.OnPush。你可以在Change Detection Explained找到一些有用的信息
标签: javascript angular settimeout material-design-lite