Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular2从Wordpress WP API获取页面数据_Javascript_Json_Wordpress_Angular - Fatal编程技术网

Javascript Angular2从Wordpress WP API获取页面数据

Javascript Angular2从Wordpress WP API获取页面数据,javascript,json,wordpress,angular,Javascript,Json,Wordpress,Angular,我正在使用Wordpress WP API将数据解析到我的Angular2应用程序中 我需要获取数据来填充我的页面,并且需要基于ActivatedRoute获取页面SLUG。然而,我不知道如何实现这一点。在“项目”页面中,我需要页面数据 这是我的页面数据的Json示例: [{ "id":16, "date":"2015-06-24T11:44:03", "slug":"projects", "type":"page", "title":{"rendered":"Project

我正在使用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());
}
在我的控制台中,我得到“未定义”

我希望每个页面动态地从ActivatedRoute获取页面SLUG,并获取数据以填充每个页面

对于每个页面(组件模板),我可以简单地解析:

<h1>{{ page?.title.rendered }}</h1>
{{page?.title.rendered}

我缺少了什么?

我正在开发一个插件Xo for Angular,这听起来是解决这种情况的完美方案

主要概念:

  • 您的Angular应用程序已加载并作为主题存在于WordPress中
  • 角度模板(模块),可为页面和帖子选择
  • 在WordPress中创建的页面、帖子和其他内容的动态路由
使用XOAPI很容易获得WordPress中任何页面或帖子的数据。例如:

这将检索完整的post对象,并添加元数据和ACF字段(如果已配置)

Xo还动态生成所有路由,这使您可以通过WordPress正常定义页面结构。因为WordPress和Angular as Xo都保持完全同步,所以不需要通过slug来检索页面或帖子

动态路由示例:

还有一个节点模块
angularXO
,它提供了一个内置的解析器,用于检索每个页面视图的数据,并使该数据在模板中可用

有关此功能的详细信息:

使用Xo的主题示例:

更多文档(正在处理中):

<h1>{{ page?.title.rendered }}</h1>