Как разместить данные на сервере - PullRequest
0 голосов
/ 26 октября 2018

У меня есть простое приложение angular 6, в котором есть кнопки «следовать» и «отменить подписку», как вы можете видеть теперь, когда вы нажимаете кнопку увеличения количества подписок, я хочу сохранить число этих последователей на сервере json.

здесь ссылка наДокументация по json серверу: https://www.npmjs.com/package/json-server

Вот демонстрация того, что я пытаюсь сделать: demo Вот мой файл 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?

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Вы не вызываете свой метод 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);
    });
  }
}
0 голосов
/ 26 октября 2018

Вы добавили функцию в подобный компонент - addStatus () Но я не вижу, что вызов этой функции Вам нужно также добавить кнопку состояния и вызвать эту функцию

...