Показать const в шаблоне с угловым 4 / ионным - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть константы, объявленные в конструкторе в моем файле .ts.Я хотел бы отобразить их значение в шаблоне.

Это хорошая практика?

РЕДАКТИРОВАТЬ:

import {Component, OnInit, Output} from '@angular/core';
import { NavController } from 'ionic-angular';
import {MemoryEditPage} from "../memory-edit/memory-edit";


@Component({
    selector: 'page-memory-list',
    templateUrl: 'memory-list.html',
})
export class MemoryListPage implements OnInit {

    @Output() k_user: string;
    @Output() type: MemoryType = MemoryType.memories;


    constructor(
        private auth: AuthService,
        public navCtrl: NavController,
    ) {
        const monthNames = ['Janvier','Février','Mars','Avil','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'];
        const thisMonth = monthNames[(new Date()).getMonth()];
        const dayNames = ['Lun','Mar','Mer','Jeu','Ven','Sam','Dim'];
        const thisDay = dayNames[(new Date()).getDay() - 1];
        const thisDate = (new Date()).getDate();

        this.thisDay = thisDay;
        this.thisDate = thisDate;
        this.thisMonth = thisMonth;

    }


}

Шаблон:

<ion-label no-margin text-uppercase color="white">{{thisMonth}}</ion-label>

1 Ответ

0 голосов
/ 20 ноября 2018

Во-первых, это нельзя считать практикой, так как вы не можете это сделать. Вы можете получить доступ только к свойствам и методам компонента (public) в шаблоне вашего компонента.

Для этого вам необходимо определить свойство в вашем Компоненте.

...
@Component({...})
export class MemoryListPage implements OnInit {

    ...
    thisMonth;

    constructor(...) {
        ...
        const thisMonth = monthNames[(new Date()).getMonth()];
        this.thisMonth = thisMonth;
        ...
    }
}

А затем используйте его в своем шаблоне:

<ion-label 
  no-margin 
  text-uppercase 
  color="white">
  {{thisMonth}}
</ion-label>

UPDATE:

Отвечая на ваш обновленный вопрос, на самом деле не рекомендуется писать какую-либо логику реализации в constructor. Это должно быть написано в ngOnInit. Даже Официальные документы Angular ручаются за это:

Опытные разработчики согласны с тем, что компоненты должны быть дешевыми и безопасными в изготовлении.

Миско Хевери, руководитель группы Angular, объясняет, почему следует избегать сложной логики конструктора.

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