将服务添加到组件中时,在开发工具控制台中出现很多错误,但是代码仍然有效,但是我想摆脱这些错误
这是服务:
getPagesData(pageSlug: string): Observable<any[]> {
return this._http.get<any[]>(`${environment.apiUrl}wp/v2/pages/?slug=${pageSlug}`);
}
这是组件:
import { Component, OnInit } from '@angular/core';
import { DataService } from 'src/app/services/data.service';
@Component({
selector: 'app-membership',
templateUrl: './membership.page.html',
styleUrls: ['./membership.page.scss'],
})
export class MembershipPage implements OnInit {
public pageContent: any = {};
public content: string;
constructor(
private _data: DataService
) { }
ngOnInit() {
this._data.getPagesData('memberships')
.subscribe(
page => this.pageContent = page[0]
)
}
getContent(): string {
return this.pageContent.content.rendered.replace(/\[(.+?)\]/g, "");
}
}
导致错误的原因是getContent()方法!它说.rendered是未定义的属性,但是它的剂量在API上定义!
我已经搜索了该问题,并且发现的大多数解决方案都与使用符号有关?在HTML模板中,但是我不能在组件本身中使用它。
是的,您不能?
在组件本身中使用Elvis(安全导航)运算符,因为它仅用于视图零件。
但是您也可以在组件中添加一些检查,以免出现此类错误,例如-
getContent(): string {
const dataToReturn = this.pageContent && this.pageContent.content && this.pageContent.content.rendered.replace(/\[(.+?)\]/g, "");
return dataToReturn
}
.rendered是未定义的属性
此外,这个错误可能会产生你所定义pageContent = {}
的这样{}
既不content
也不rendered
存在,可能是也存在这种错误的原因。
Angular建议在使用前强烈排版您的数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句