Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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 wordpress和angular主题在新帖子发布时更新帖子列表_Javascript_Php_Wordpress_Angular - Fatal编程技术网

Javascript wordpress和angular主题在新帖子发布时更新帖子列表

Javascript wordpress和angular主题在新帖子发布时更新帖子列表,javascript,php,wordpress,angular,Javascript,Php,Wordpress,Angular,嗨,我是Angular 4的新手,我想用它来构建一个使用wp api的WordPress主题。我从开始,但我和它的所有工作很好,但我需要的是,当一个新的帖子发布后,帖子列表页面更新自己,而不重新加载页面。我在angular中看到了一些关于http服务的教程,但我没有找到任何解决方案,可能是Wordpress api的问题,而不是angular部分 这是服务: import { Injectable } from '@angular/core'; import { HttpClient } fro

嗨,我是Angular 4的新手,我想用它来构建一个使用wp api的WordPress主题。我从开始,但我和它的所有工作很好,但我需要的是,当一个新的帖子发布后,帖子列表页面更新自己,而不重新加载页面。我在angular中看到了一些关于http服务的教程,但我没有找到任何解决方案,可能是Wordpress api的问题,而不是angular部分

这是服务:

import { Injectable } from '@angular/core';
import { HttpClient } from "@angular/common/http";
import { Observable } from 'rxjs/Observable';
import { Post } from './post';
import { environment } from '../../environments/environment';

@Injectable()
export class PostsService {

  private _wpBase = environment.wpBase;

  constructor(private http: HttpClient) { }

  getPosts(): Observable<Post[]> {
      return this.http.get<Post[]>(this._wpBase + 'posts');
  }

  getPost(slug: string): Observable<Post[]> {
      return this.http.get<Post[]>(this._wpBase + `posts?slug=${slug}`);
  }
}
import { Component, OnInit } from '@angular/core';
import { Post } from '../post';
import { PostsService } from '../posts.service';
import { Router } from '@angular/router';
import { HttpErrorResponse } from '@angular/common/http';

@Component({
  selector: 'app-post-list',
  templateUrl: './post-list.component.html',
  styleUrls: ['./post-list.component.css'],
  providers: [PostsService]
})

export class PostListComponent implements OnInit {

  public posts: Post[];

  constructor( private postsService: PostsService, private router: Router ) {}

  ngOnInit() {

    this.postsService.getPosts().subscribe(
      (posts: Post[]) => this.posts = posts,
      (err: HttpErrorResponse) => err.error instanceof Error ? console.log('An error occurred:', err.error.message) : console.log(`Backend returned code ${err.status}, body was: ${err.error}`));

  }
  selectPost(slug) {
    this.router.navigate([slug]);
  }
}

听起来您需要一个轮询服务或websocket。Angular在重新加载
/posts
端点之前,不知道何时在WordPress中创建新帖子。轮询可能是这里唯一有效的方法。最近看过之后,我不相信wpapi中有任何东西支持websocket,所以没有解决方案?现在?听起来你需要一个投票服务或websocket。Angular在重新加载
/posts
端点之前,不知道何时在WordPress中创建新帖子。轮询可能是这里唯一有效的方法。最近看过之后,我不相信wpapi中有任何东西支持websocket,所以没有解决方案?现在呢?