我正在使用服务加载我的应用程序组件上的json数据。
this.data = this.dataService.getData()
.subscribe(
data => {
this.data = data;
this.ui = this.data.style;
},
err => console.error(err),
() => console.log('Data loaded')
);
当我尝试在NgStyle的模板组件中访问this.ui时,我收到错误" Self.context.ui未定义"。它很奇怪,因为它显示在控制台中,但是一旦我将它添加到我的组件上,它就会吓坏了。
这段代码在app组件中,我试图从我的json
获取动态样式<h1 [NgStyle]="{'color': ui.colors.first}"> Random text </h1>
这是json结构,它看起来像这样。
{
"style":{
"colors": {
"first": "#ffffff"
}
}
}
我真的不知道为什么角度不让我使用数据,您认为这里发生了什么?
答案 0 :(得分:2)
您的self.context
错误在此处:
this.data = this.dataService.getData()
应该只是:
this.dataService.getData()
.subscribe(
data => {
this.data = data;
this.ui = this.data.style;
},
err => console.error(err),
() => console.log('Data loaded')
);
您要将数据分配到this.data
内的this.data
,这就是为什么它会抱怨self.context
。
和[NgStyle]
应为[ngStyle]
,并且像@echonax建议您可能必须使用安全运营商。