gpt4 book ai didi

html - 无法在 HTML 中处理 Typescript 枚举

转载 作者:技术小花猫 更新时间:2023-10-29 11:38:39 26 4
gpt4 key购买 nike

我用 Typescript 创建了一个枚举,用于 MyService.service.ts MyComponent.component.ts 和 MyComponent.component.html。

export enum ConnectionResult {
Success,
Failed
}

我可以轻松地从 MyService.service.ts 中获取和比较定义的枚举变量:

this.result = this.myService.getConnectionResult();

switch(this.result)
{
case ConnectionResult.Failed:
doSomething();
break;
case ConnectionResult.Success:
doSomething();
break;
}

我还想使用枚举在我的 HTML 中使用 *ngIf 语句进行比较:

<div *ngIf="result == ConnectionResult.Success; else failed">
<img src="../../assets/connection-success.png" height="300px" class="image-sign-style" />
</div>
<ng-template #failed>
<img src="../../assets/connection-failed.png" height="300px" class="image-sign-style" />
</ng-template>

代码编译通过但浏览器报错:

Cannot read property of undefined

enter image description here

带有以下 html 指示错误行:

enter image description here

有谁知道为什么不能这样处理枚举?

最佳答案

模板的范围仅限于组件实例成员。如果你想引用它需要在那里可用的东西

class MyComponent {
public get connectionResult(): typeof ConnectionResult {
return ConnectionResult;
}
}

在您现在可以使用的 HTML 中

*ngIf="connectionResult.Success"

另见 Angular2 access global variables from HTML template

关于html - 无法在 HTML 中处理 Typescript 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44045311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com