Не функциональная проблема

Я столкнулся с классической проблемой «Не функция» в Ionic Framework, я надеюсь, что вы поможете мне лучше разобраться в этом случае.

Я пытаюсь извлечь объект из массива. У объекта есть частные свойства, которые я получаю с помощью простых методов получения.

Проблема возникает, когда выполняется эта строка всего класса выше:

this.selectedWorkoutPlan = this.workoutPlanList.find(object => object.getId() === this.id);

Консоль возвращает указанную ранее ошибку.

Это мой файл .ts:

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import {WorkoutPlanService} from "../../services/workout-plan.service";
import {WorkoutPlan} from "../../models/workout-plan";

@IonicPage()
@Component({
  selector: 'page-workout-plan-detail',
  templateUrl: 'workout-plan-detail.html',
})
export class WorkoutPlanDetailPage {

  id: number = 0;
  title: string = "";
  startDate: Date = new Date();
  endDate: Date = new Date();

  workoutPlanList: WorkoutPlan[] = [];
  selectedWorkoutPlan: WorkoutPlan = new WorkoutPlan();

  constructor(public navCtrl: NavController, public navParams: NavParams,
              private workoutPlanService: WorkoutPlanService) {
  }

  ionViewDidLoad() {
    this.id = this.navParams.get("id");
    this.workoutPlanList = this.workoutPlanService.getWorkoutPlanList();
    this.selectedWorkoutPlan = this.workoutPlanList.find(object => object.getId() === this.id);
  }

}

и это класс модели .ts.

import {WorkoutExercise} from "./workout-exercise";

export class WorkoutPlan {

  private title: string;
  private exercises: WorkoutExercise[];
  private startDate: Date;
  private endDate: Date;
  private id: number;

  constructor() {
    this.id = new Date().getTime();
  }

  setTitle(newTitle: string) {
    this.title = newTitle;
  }

  setExercises(newExercises: WorkoutExercise[]) {
    this.exercises = newExercises;
  }

  setStartDate(newStartDate: Date) {
    this.startDate = new Date(newStartDate);
  }

  setEndDate(newEndDate: Date) {
    this.endDate = new Date(newEndDate);
  }

  setId(newId: number) {
    this.id = newId;
  }

  getTitle() {
    return this.title;
  }

  getExercises() {
    return this.exercises;
  }

  getStartDate() {
    return this.startDate;
  }

  getEndDate() {
    return this.endDate;
  }

  getId() {
    return this.id;
  }

}

Мне что-то не хватает в синтаксисе?

На мой взгляд, я думал, что объект массива будет иметь как свойства, так и методы, не так ли?

Спасибо заранее за ваше время.

Пожалуйста, предоставьте дополнительно свой WorkoutPlanService.

Lynx 242 25.04.2018 21:53

Также было бы полезно, если бы вы опубликовали точно, как выглядит ошибка

Pointy 25.04.2018 22:31

Ошибка говорит: «object.getId () не является функцией».

Gozus19 25.04.2018 23:08
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
44
1

Ответы 1

Я предполагаю, что вы можете сериализовать свои объекты WorkOutPlan где-то в WorkoutPlanService, а затем анализировать строки обратно в объекты WorkOutPlan, что приводит к потере связанных методов.

Вы когда-нибудь натягиваете эти объекты?

Нет, я не натягиваю никакие объекты. Я использую эту службу только для получения списка объектов WorkoutList, хранящихся в ней.

Gozus19 25.04.2018 22:06

Другие вопросы по теме