我有以下枚举:
export enum SubstitutionType {
REPLACEMENT_TEACHER_SUBJECT = 0,
REPLACEMENT_TEACHER = 1,
REPLACEMENT_FREE = 2
}
我尝试在课堂上使用这个:
class A {
public substitutionsType: SubstitutionType;
}
然后在模板中,我无法像这样访问substitutionsType
:
substitutionsType.REPLACEMENT_FREE
为什么,如何使用它?
答案 0 :(得分:2)
希望这能帮到你:
export enum SubstitutionType {
REPLACEMENT_TEACHER_SUBJECT,
REPLACEMENT_TEACHER,
REPLACEMENT_FREE
}
要在模板中使用它,您应该导出这样的类:
export class Substitutions{
public substitutionsType: SubstitutionType;
@Input() public set substitution(val: number) {
console.log(value);
};
}
然后在模板中使用它,你会写这样的东西:
<span class="Substitutions" subsitutionType="subsitution.REPLACEMENT_FREE"></span>
我使用这个帖子就像一个例子:Pass enums in angular2 view templates
答案 1 :(得分:1)
目前,您声明substitutionsType
为SubstitutionType
类型,即它可以包含其中一个枚举值。但是,您要实现的是将(整个)枚举分配给实例变量:
class A {
public substitutionsType = SubstitutionType;
}
// Now typechecks
(new A).substitutionsType.REPLACEMENT_FREE;
实例变量的推断类型为typeof SubstitutionType
,如果您愿意,也可以对其进行注释。