Вызов статической функции TypeScript из HTML - PullRequest
0 голосов
/ 19 апреля 2019

Я хочу вызвать метод / функцию статического класса из моего HTML в Angular 7. Эта функция находится не в component.ts, а в отдельном файле общего класса message.ts.На консоли отображается ошибка:

TypeError: Cannot read property 'msg1' of undefined.

Шаблон:

<div>
  {{ Message.msg1({ 'x': 'abc', 'y': 'def' }) }}
</div>

message.ts:

import { Injectable } from '@angular/core';

    @Injectable({
        providedIn: 'root'
    })
    export class Message {

        constructor() { }

        public static msg1 (items: []): string {
          // some code
        }
    }

Возможно ли то, что я хочу?Если да, как я могу получить файл сообщения (и, следовательно, класс Message) в области HTML?

1 Ответ

2 голосов
/ 19 апреля 2019

Статические методы доступны в классе , а не в экземпляре, введенном DI.Если вы хотите, чтобы этот код шаблона работал, вам нужно сделать, например,

import { Message } from ".../message";

@Component(...)
class Whatever {
  Message = Message;

   ...
}

, чтобы сделать класс доступным как Message в области видимости шаблона.

Тем не менее, неясно, почему этот метод является статическим или в чем смысл инъецируемой службы, использующей только статический метод.

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