Как объявить объект с ключом, являющимся датой, и значением, являющимся логическим значением в Angular / TypeScript - PullRequest
0 голосов
/ 27 октября 2019

Имея файл app.component.ts, внутри его класса объявлена ​​переменная, которая хранит из входных данных дату.

Я хочу с этой датой создать объект, ключ - дата изначение логическое (истинно или ложно в зависимости от даты, например, если дата находится внутри 2018 года, она ложна, в противном случае это истина)

HTML-файл:

<input type="date" [(ngModel)]="currentDate">
<button (click)="addDate()">add date</button>

ts:

export class AppComponent {
    dateArray = [];
    currentDate = "";
    dateObject = { this.currentDate, true };
    addDate() {
         this.dateArray.push(dateObject);
    }
}

Я новичок в Angular, я не знаю, как должен выглядеть dateObject, чтобы хранить в нем то, что я хочу. Есть предложения?

Ответы [ 2 ]

1 голос
/ 27 октября 2019

Это то, что вы можете сделать:

export class AppComponent {
    dateArray = [];
    currentDate = "";
    addDate() {
      const currentYear = new Date(this.currentDate).getFullYear();
      if (currentYear === 2018) { 
        this.dateArray.push({
          [this.currentDate]: true
        });
      }

    }
}

Вы можете преобразовать строку currentDate в объект даты JavaScript, а затем использовать метод Date.getFullYear () дляполучить год.

Затем вы можете проверить, является ли год 2018, перед тем как вставить объект в dateArray.

Кроме того, способ инициализации dateObject неправильно использовать объектные литералы . Для этого сценария вы должны вместо этого работать с вычисляемыми именами свойств , такими как { [this.currentDate]: true }.

1 голос
/ 27 октября 2019

Вы можете создать класс, который содержит свойства, которые вы хотите. Пример

export class MyCustomClass {
   public currentDate: Date;
   public isDateValid: boolean;
   constructor(currentDate: Date) {
     this.currentDate = currentDate;
     if(currentDate.getFullYear() < 2018) { 
        this.isDateValid = false;
     } else {
        this.isDateValid = true;
     }
   }
}

Затем вы можете создать экземпляр MyCustomClass в AppComponent

export class AppComponent {
    dateArray: MyCustomClass[] = [];
    currentDate = "";
    newObj: MyCustomClass;
    addDate() {
         newObj = new MyCustomClass(currentDate);
         this.dateArray.push(newObj);
    }
}

Это то, что вам нужно?

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