gpt4 book ai didi

angular - 检查一个值是私有(private)的还是只读的

转载 作者:搜寻专家 更新时间:2023-10-30 21:19:36 24 4
gpt4 key购买 nike

假设我有一个类:

export class ItemType{

readonly itemtype_id: number;
public name :string;

constructor(itemtype_id: number, name: string) {
this.itemtype_id = itemtype_id;
this.name = name;
}
}

现在我制作了一个单独的组件,它是一个可编辑的标签。

<div class="row">
<div class="col-xs-4">
<h4><span class="xvrfont padding">{{label}}</span></h4>
</div>
<div class="col-xs-2"></div>
<div class="col-xs-5">

<div *ngIf="editing">
<input #editableField
[required]="required"
(blur)="onBlur($event)"
[name]="value"
[(ngModel)]="value"
[type]="type"
[placeholder]="label"
(keyup.enter)="onEnter()"
(mouseover)="$event.target.select()"
/>
</div>
<div *ngIf="!editing">
<h4 title="Click to edit" (click)="edit(value);" (focus)="edit(value);" tabindex="0" class="inline-edit">{{value}}&nbsp;</h4>
</div>


</div>
</div>

当我调用此组件时,我希望根据属性是否为只读来编辑该字段。如果该属性是只读的,则该字段不应是可编辑的。如果不是,它应该。

<app-editable-field [isEditable]={{**check if the property is readonly**}} label='Label" [required]="true" type="text"></app-editable-field>

有没有一种简单的方法来检查类中的属性是只读的还是私有(private)的?

最佳答案

问题是您的 Typescript 会被编译成 Javascript,请始终牢记这一点。

因此所有类型和公共(public)/私有(private)检查(以及所有其他使 Typescript 很棒的东西)只能在编译时执行。一旦将其编译为 Javascript,所有这些信息都会丢失。这意味着实际上没有办法在运行时检查成员是私有(private)的还是只读的,因为您的浏览器正在执行纯 Javascript。

为了说明这一点,请检查此链接以查看您的 Typescript 类被编译成什么:TypeScript Playground

正如 dsfq 在评论中指出的那样,使用一个 bool 值成员来指示该字段是否可编辑。

关于angular - 检查一个值是私有(private)的还是只读的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48168028/

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