0

我有一个简单的 Angular 6 应用程序,它有关注和取消关注按钮,正如你现在看到的,当你点击关注数量增加时,我想将这些关注者数量保存到 json 服务器。

这是 json 服务器文档的链接:https ://www.npmjs.com/package/json-server

这是我正在尝试做的演示: 这里的演示是我的 json 文件

  "data": [
    {
      "id": 1,
      "following": 121,
      "followers": 723,
    } 
  ],

这是html

<div class="container">
  <div class="row">
    <p class="col">{{numberOffollowers}}</p>
    <button class="col btn btn-success" (click)="followButtonClick()">Follow</button>
    <button class="col btn btn-danger" (click)="unfollowButtonClick()">Unfollow</button>
  </div>
</div>

这里是服务

import { Injectable } from '@angular/core';
import { Statuses} from '../model/statuses';
import { HttpClient } from '@angular/common/http';

@Injectable()
export class UsersService {

  status: Statuses[];
  constructor(private http: HttpClient) { }
  statusUrl = 'http://localhost:3000/statuses';

  getStatuses() {
    return this.http.get<Statuses[]>(this.statusUrl);
  }
  addStatus(status: Statuses) {
   return this.http.patch(this.statusUrl, status);
  }
}

这是 ts 文件:

import { Component, Input } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { UsersService } from './service/users.service';
import { Statuses} from './model/statuses';
@Component({
  selector: 'like-box',
  templateUrl: 'like.component.html',
  styleUrls: [ './like.component.css' ]
})
export class LikeComponent  {
 numberOffollowers : number = 69;
  status: Statuses[];

  constructor(private http: HttpClient, private usersService: UsersService) { }

  followButtonClick() {
    this.numberOffollowers++;
  }

  unfollowButtonClick() {
    this.numberOffollowers--;
  }

   addStatus() {
    this.usersService.addStatus(this.numberOffollowers)
    .subscribe(data => {
      this.status.push(this.numberOffollowers);
    });
  }
}

通过此链接应用程序访问我的应用程序

您可以看到它不起作用,我需要在我的应用程序中进行哪些更改才能将这些关注者编号保存到 json 服务器?

4

2 回答 2

0

单击按钮时,您不会调用 addStatus 方法,而只是更新 numberOfFollowers

import { Component, Input } from '@angular/core';
import { UsersService } from './service/users.service';
import { Statuses} from './model/statuses';
@Component({
  selector: 'like-box',
  templateUrl: 'like.component.html',
  styleUrls: [ './like.component.css' ]
})
export class LikeComponent  {
 numberOffollowers : number = 69;
  status: Statuses[];

  constructor( private usersService: UsersService) { }

  followButtonClick() {
    this.numberOffollowers++;
    this.addStatus()
  }

  unfollowButtonClick() {
    this.numberOffollowers--;
     this.addStatus()
  }

   addStatus() {
    this.usersService.addStatus(this.numberOffollowers)
    .subscribe(data => {
      this.status.push(this.numberOffollowers);
    });
  }
}
于 2018-10-26T11:50:47.013 回答
0

您已在类似组件中添加了功能 - addStatus() 但我看不到该功能的调用您还需要添加状态按钮并调用该功能

于 2018-10-26T11:40:00.490 回答