ошибка TS2339: свойство 'date' не существует для типа 'Comment' - PullRequest
0 голосов
/ 27 октября 2018

У меня есть простое угловое 6 приложение, которое имеет textarea , я хочу отсортировать список комментариев по дате добавления

Вот html :

 <div class="comments-card card">
  <div class="comments" *ngFor="let comment of comments"> 
    <div class="commets_header">
      <button class="comments_button">Hide comments<span class="comments_count">(353)</span></button>
    </div>
    <div class="comments-description">
      <div class="comments-photo">
        <img src="https://randomuser.me/api/portraits/men/84.jpg" alt="">
      </div>
      <div class="comments_wrapper">
        <div class="comments_details">
          <h1>{{comment.username}}</h1>
          <span class="days">{{comment.date | date:'dd.MM.yyyy H:mm'}}</span>
        </div>
        <div class="comments_text">
          <p>{{comment.description}} </p>
        </div>
      </div>
    </div>
    <hr class="comments_line" >
  </div>
  <form class="add-comments" [formGroup]="addForm" (keyup.enter)="addComments()">
    <div class="form-group">
      <textarea class="form-control" rows="1" placeholder="Add comments" formControlName="description" id="description"></textarea>
    </div>
  </form>
  </div>
</div>

Вот изображение кода в компонентах ts для получения комментариев

Вот код компонента для получения и добавление комментариев

import { Component, OnInit } from '@angular/core';
import { UserService } from '../service/user.service';
import { Status } from '../model/statuses.model';
import { Comment } from '../model/comments.model';
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
import { User } from '../model/user.model';
import { ActivatedRoute } from '@angular/router';

@Component({
  selector: 'app-user-profile',
  templateUrl: './user-profile.component.html',
  styleUrls: ['./user-profile.component.scss']
})
export class UserProfileComponent implements OnInit {
  comments: Comment[];

  constructor(private formBuilder: FormBuilder, private activeRouter: ActivatedRoute, private userService: UserService) {
  }

  addForm: FormGroup;

  ngOnInit() {
    this.addForm = this.formBuilder.group({
      id: [],
      description: ['', Validators.required],
    });
      this.activeRouter.params.subscribe((params) => {
        // tslint:disable-next-line:prefer-const
        let id = params['id'];
        this.userService.getComments(id)
        .pipe(
          map(data => data.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()))
        )
        .subscribe(data => this.comments = data);
        });

  }

Вот часть кода в служебном файле для получения комментариев

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import {Status } from '../model/statuses.model';
import { Comment } from '../model/comments.model';
import { User } from '../model/user.model';
@Injectable({
  providedIn: 'root'
})
export class UserService {
  status: Status[];
  constructor(private http: HttpClient) { }
  commentsUrl = 'http://localhost:3000/comment';

  addComments(comments: Comment) {
    return this.http.post(this.commentsUrl, comments);
  }
  getComments(id: number) {
    return this.http.get<Comment[]>(this.commentsUrl);
  }

}

Вот комментарии json файл:

 "comment": [
    {
      "id": 1,
      "username": "Michael Ross",
      "city": "New York USA",
      "days": "1d",
      "task_id": 1,
      "description": "Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et lig"
    },
    {
      "id": 2,
      "username": "Michael Ross",
      "city": "New York USA",
      "days": "1d",
      "task_id": 1,
      "description": "Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et lig"
    }
]

Вот модель комментариев

export class Comment {
    id: number;
    username: string;
    email: string;
    days: number;
    description: string;
}

Когда я запускаю приложение, я получаю следующую ошибку

ERROR in src/app/user-profile/user-profile.component.ts(50,54): error TS2339: Property 'date' does not exist on type 'Comment'.
src/app/user-profile/user-profile.component.ts(50,83): error TS2339: Property 'date' does not exist on type 'Comment'.

Я хочу, чтобы эти комментарии были отсортированы по дате их добавления, поскольку мы знаем, что у нас нет порядка по трубе в угловой 6 ,

Что мне нужноизменить, чтобы получить то, что я хочу?любая помощь будет оценена спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...