【发布时间】:2017-06-26 00:23:27
【问题描述】:
我正在使用 Wordpress WP API 将数据解析到我的 Angular2 应用程序中。
我需要获取数据来填充我的页面,并且我需要根据 ActivatedRoute 获取页面 SLUG。但是,我不确定如何实现这一点。在“项目”页面中,我需要有页面数据。
这是我的页面数据的示例 Json:
[{
"id":16,
"date":"2015-06-24T11:44:03",
"slug":"projects",
"type":"page",
"title":{"rendered":"Projects"}
}]
首先,我创建了一个页面服务:
@Injectable()
export class PageService {
constructor(private http: Http) {}
getPage(slug): Observable<Page> {
return this.http
.get(`${PROJECT_API}pages?slug=${slug}`)
.map((res: Response) => res.json());
}
}
然后,在我的 app.component 中,我尝试获取激活的路由参数,将 SLUG 解析为我的 Service 中的 getPage 函数:
export class AppComponent implements OnInit {
page: Page[]; // Interface of Page
constructor(
private router: Router,
private activatedRoute: ActivatedRoute,
private pageService: PageService
) {}
ngOnInit() {
this.activatedRoute.params
.switchMap((data: Page) => this.pageService.getPage(data.slug))
.subscribe((data: Page) => {
console.log(data[0])
this.page = data[0]
});
}
}
在我的控制台中,我得到“未定义”。
我希望每个页面从 ActivatedRoute 动态获取页面 SLUG 并获取数据以填充每个页面。
对于每个页面(组件模板),我可以简单地解析:
<h1>{{ page?.title.rendered }}</h1>
我在这里错过了什么?
【问题讨论】:
标签: javascript json wordpress angular