#html #angular #typescript #components
Вопрос:
У меня есть служебный класс TypeScript myUtils.ts
, как показано ниже:
export class MyUtils {
static doSomething(input: string) {
// do something
}
}
Я хочу вызвать этот метод в HTML-файле моего компонента. Для этого я импортировал этот класс в свой компонент
import { MyUtils } from './utils'
и использовать в HTML-файле компонента примерно так:
<ng-template #dynamicTableCell let-entry>
{{ MyUtils.doSomething(entry) }}
</ng-template>
HTML жалуется на Unresolved variable or type MyUtils
это . Интересно, что я могу сделать то же MyUtils.doSomething(someEntry)
самое без каких-либо ошибок в файле компонента component.ts
. Это просто HTML, в котором он жалуется.
Может кто-нибудь, пожалуйста, сказать мне, как исправить эту проблему в HTML? Заранее спасибо.
Комментарии:
1. Вы рассматривали возможность использования угловой службы вместо вашего класса utils? В своем html-коде к вашему компоненту вы сможете
{{newService.doSomething(entry)}}
2. Вы не можете, но не составит большого труда добавить прокси-члена в свой класс компонентов
doSomething = MyUtils.doSomething;
и использовать его
Ответ №1:
Вы не можете его использовать, так как шаблонные выражения ограничены ссылками на элементы экземпляра компонента, вам необходимо создать метод в своем компоненте или в вашем случае использовать угловой канал.
компонент.ts
import { MyUtils } from './utils';
...
doSomething(entry) {
MyUtils.doSomething(entry);
}
// or
doSomething = MyUtils.doSomething;
Вы можете ознакомиться с документом Выражения шаблонов.
Комментарии:
1. Спасибо, @coturiv! Это действительно помогло.