我在阅读几个在线页面时遇到此错误@RouteConfig RouterLink
。我不太清楚如何解决它或因为它。
当我使用constructor(http: Http, private ref: ChangeDetectorRef) {
..//
setInterval(() => {
this.ref.detectChanges();
}, 5000);
我的一个组件使用此构造函数
constructor(http: Http) {
..//
/*
setInterval(() => {
this.ref.detectChanges();
}, 5000);
*/
如果我评论并更改构造函数,则此错误消失
ChangeDetectorRef
有人成为这个,或使用import numpy as np
Beam_irradiance_DNI = np.array(Beam_irradiance_DNI)
plt.hist(Beam_irradiance_DNI[Beam_irradiance_DNI>0], color="grey")
答案 0 :(得分:3)
阅读评论Eric Martinez。在我的案例中,我使用OnDestroy
和detach()
解决了我已经完成的测试似乎很有效希望它可以帮助其他人。
import {Component, ChangeDetectorRef, OnDestroy} from "angular2/core";
..//
export class Test implements OnDestroy{
..//
constructor(http: Http, public ref: ChangeDetectorRef){
..//
setInterval(() => {
this.ref.detectChanges();
}, 5000);
}
ngOnDestroy(){
this.ref.detach();
}
注意:我是Angular2的新手,不知道这是否真的是最好的解决方案
答案 1 :(得分:0)
通过导入如下
在组件类中实现OnDestroy
import { Component, OnDestroy } from '@angular/core';
然后执行以下操作
ngAfterViewInit() { // *Bind when component loads
console.log('onLoad');
this.zone.reattach();
}
detectChanges(val: any){ // * Runs outside Angular Code
/*Your codes and logic*/
this.intrv = setInterval(()=>{
this.zone.detectChanges();
}, 1000)
}
ngOnDestroy() { // * Clean after leave. Clear any intervals or setTimeouts here.
this.zone.detach();
if(this.intrv){ //Making sure everything is removed
clearInterval(this.intrv);
}
}
阅读代码注释以进行解释。 以上代码使我免于错误。
<强>阐释:强>
ngAfterViewInit()
ngOnDestroy()
<强>文档强>