Не проблема функции - PullRequest
       6

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

0 голосов
/ 25 апреля 2018

Я сталкиваюсь с классической проблемой «Не функция» в 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;
  }

}

Я что-то упустил в синтаксисе?

Я подумал, что объект массива будет иметь свойства и методы одновременно, не так ли?

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

1 Ответ

0 голосов
/ 25 апреля 2018

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

Являетесь ли выСтригирование этих объектов в любое время?

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