如何在角度2模板中使用导入的类,函数和变量

时间:2016-12-28 08:52:47

标签: angular typescript angular2-template

我有一个导入静态内容并在模板中使用它的问题的解决方案,但我不确定它是否正确,所以我想听听是否有官方/更好的方法。

这是一个例子,包括相关部分和我目前的解决方案。

constants.ts

export const ELEMENT_TYPES = { FIELD: {...}, GROUP: {...} ...};

component.ts

import {ELEMENT_TYPES} from "./constants";

@Component({
   ...
   templateUrl:"./template.html"
})
export class myComponent{
   public type = ELEMENT_TYPES.GROUP;

   public get ELEMENT_TYPES() {
      return ELEMENT_TYPES;
   }

   public isOfType(matchType){
      return this.type === matchType;
   }
   ...
}

template.html

<div *ngIf="isOfType(ELEMENT_TYPES.FIELD)">
   ...
</div>

当然,实际的实现类型是从另一个地方设置的(它是在通过输入向下发送的元数据对象中)

我关心的是使用与属性getter相同的名称作为导入的常量名称。但如果我不创建一个getter,我将无法访问模板中的常量。我想访问模板中与组件类中相同名称的常量ELEMENT_TYPES。

对于以这种方式导入的类,函数和变量,此问题是相同的。 (我们有静态库类(不是服务),例如有时需要从模板中使用)

当然,我对另一种看待问题的方式持开放态度,例如,有一种更好的方法来打包常量和类(我们没有以这种方式导入函数)来从中访问它们模板和组件类通过相同的名称。

0 个答案:

没有答案