我从头开始创建导航栏,其中所有字段均以服务开头。 (但此时服务是空的)
例如:
export class LaunchService {
userProfile: any = {
userData: { id:'',phone:''},
test2: {
a: '',
b: '',
c: '',
d: '',
e: ''
},
}
}
和组件
我的组件(这是Inital,在应用程序启动时提供空服务)
export class UserProfileComponent implements OnInit {
userProfile: any = {
}
constructor(private launchService: LaunchService) { }
ngOnInit() {
this.userProfile.id = this.launchService.userProfile.userData.id
this.userProfile.phone =
this.launchService.userProfile.userData.phone
this.userProfile.a = this.launchService.userProfile.test2.a
this.userProfile.b = this.launchService.userProfile.test2.b
this.userProfile.c = this.launchService.userProfile.test2.c
this.userProfile.d = this.launchService.userProfile.test2.d
this.userProfile.e = this.launchService.userProfile.test2.e
}
UserProfileComponent.html:
<div>
<div>
<div>
{{ this.userProfile.id}}
</div>
<div>
{{this.userProfile.phone}}
</div>
<div>
{{this.userProfile.test2.a}}
</div>
<div>
{{this.userProfile.test2.b}}
</div>
<div>
{{this.userProfile.test2.c}}
</div>
<div>
{{this.userProfile.test2.d}}
</div>
</div>
</div>
然后 继续在应用程序中继续使用某些组件中的服务收集数据,它仅添加userData,另一个组件填充test2属性。因此,当我得到我的角度应用程序的“最后一个屏幕”时,所有字段都被填充。而且UserProfileComponent应该可以显示我在屏幕期间收集的所有数据。
但是它不起作用。我只看到初始值,而不是所有数据,并且在调试时看到服务正在填充数据。
所以我试图将html更改为实际引用
UserProfileComponent.html:
<div>
<div>
<div>
{{ LaunchService.userData.id}}
</div>
<div>
{{LaunchService.userData.phone}}
</div>
<div>
{{LaunchService.test2.a}}
</div>
<div>
{{LaunchService.test2.b}}
</div>
<div>
{{LaunchService.test2.c}}
</div>
<div>
{{LaunchService.test2.d}}
</div>
</div>
</div>
我收到此错误:
AppComponent.html:8 ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value:
使它工作的最佳方法是什么?