我正在使用 MDBootstrap(A) 的精简版进行字段材料设计。在按下重置按钮后的一个字段中,该值是预填充的。但是当发生这种情况时,标签的动画不会被激活,因此值和标签是重叠的。
顺便说一下,当页面第一次加载时会发生这种情况。当它加载一个值时它实际上可以工作,但是当我删除该值变为无效然后我用按钮重置字段时它不起作用。值回来了,但动画标签的激活不会发生。可能是CSS问题。
<div class="md-form form-group">
<input type="text"
id="portalName"
mdbActive
[ngClass]="{'invalid':(portal.errors && portal.touched) || (portal.errors && portal.dirty), 'valid':(!portal.errors && portal.touched) || (!portal.errors && portal.dirty)}"
class="form-control"
name="portalName"
[(ngModel)]="portalName.companyName"
#portal="ngModel"
[maxlength]="12"
required />
<label for="portalName">{{"CUSTOM_BRANDING.LABELS.BESPOKE_NAME" | translate }}</label>
<div *ngIf="portal.errors && (portal.dirty || portal.touched)"
class="message position-absolute">
<div [hidden]="!portal.errors.required" class="error-message" >
{{"CUSTOM_BRANDING.ERRORS.REQUIRED" | translate }}
</div>
<div [hidden]="!portal.errors.maxlength" class="error-message" >
{{"CUSTOM_BRANDING.ERRORS.MAX_LENGTH" | translate }}
</div>
</div>
</div>
我不得不说我对 angular 2 很陌生。我试图在组件内部创建一些东西,当重置发生并且值被填充时,至少对 setTouched 或 reset 之类的字段进行检查。不确定什么是最好的。我在控制模板的组件中有这段代码
resetCustBrand = (): void => {
this.facade.resetBrandLogoAndName(this.facade.CommonNodeModel.SelectedNode.Id)
.subscribe({
complete: () => {
this.selectedNodeChanged(this.facade.CommonNodeModel.SelectedNode);
this.translator.getTranslationBaseOnKey("CUSTOM_BRANDING.TOASTER_RESET_BRANDING").subscribe((message: string) => {
const toasterMessage = message.split(',');
this.toaster.pop("success", toasterMessage[0], toasterMessage[1]);
});
},
error: () => this.translator.getTranslationBaseOnKey("CUSTOM_BRANDING.ERRORS.RESETING_BRANDING").subscribe((errorMessage: string) => this.notifyService.notifyUser(errorMessage))
});
}
我希望我可以在这里添加一些东西来再次设置该字段。