Angular 从角度4开始,无错误地更改检测中断
我的服务中有一个特定属性,当我在视图中的某个位置绑定它时,它会破坏所有视图绑定/更改检测。这发生在我从Angular 2.x更新到4.0.2之后Angular 从角度4开始,无错误地更改检测中断,angular,typescript,Angular,Typescript,我的服务中有一个特定属性,当我在视图中的某个位置绑定它时,它会破坏所有视图绑定/更改检测。这发生在我从Angular 2.x更新到4.0.2之后 关于环境 为了解决这个问题,我创建了一个简单的BindingTestComponent。模板如下所示: <button (click)="toggleName()">Toggle Name</button> <div>Test: {{name}}!</div> 现在我可以点击按钮,名字在汤姆和杰瑞之间
关于环境 为了解决这个问题,我创建了一个简单的BindingTestComponent。模板如下所示:
<button (click)="toggleName()">Toggle Name</button>
<div>Test: {{name}}!</div>
现在我可以点击按钮,名字在汤姆和杰瑞之间切换
当我在同样包含BindingTestComponent的视图中的其他地方使用workTime.duration
时,就会出现这个问题。比如:
<div>{{workTime.duration}}</div>
<binding-test></binding-test>
关于服务属性
它返回的持续时间如下所示:
get duration() {
let currentTime = new Date();
let startedWork = new Date(1492074996355);
return currentTime - startedWork;
}
我可以猜测,这是一个问题,即房地产从来都不稳定。每次您请求它时,它都有不同的值。但是 我如何解决这个问题? 及
这难道不应该在浏览器控制台中给我一个错误吗?我认为它工作正常。v4之前有一个bug。评论说»…你应该预料到这种错误…«但我没有得到错误。不再检测到任何更改。不在BindingTestComponent中,也不在我视图中包含的任何其他组件中。您能创建一个plunker吗?@yurzui我尝试过,但它给了我一个错误。遗憾的是,我看不出我的设置和plunker有什么不同。无论如何,谢谢你。
toggleName() {
this.name = this.name === 'Tom' ? 'Jerry' : 'Tom';
this.cdRef.detectChanges();
}
get duration() {
let currentTime = new Date();
let startedWork = new Date(1492074996355);
return currentTime - startedWork;
}