【发布时间】:2017-10-01 07:46:28
【问题描述】:
在我的component.ts 文件中,我将值放入如下属性:
ngOnInit() {
this.route.params.subscribe(params => {
this.param = params['id'];
this.pagesService.getEditPage(this.param).subscribe(page => {
this.page = page;
});
});
}
但是在模板中,我有一个带有文本输入和文本区域的表单,该表单的行为就好像它没有任何值一样。
这是表单代码:
<form novalidate #f="ngForm" (ngSubmit)="editPage(f)">
<div class="form-group">
<label for="">Title:</label>
<input type="text" class="form-control" placeholder="Title" name="title" value="{{page?.title}}" [(ngModel)]="title" #pageTitle="ngModel"
minlength="2" required />
</div>
<div class="alert alert-danger" *ngIf="pageTitle.errors?.required && pageTitle.touched">
Title is required.
</div>
<div class="alert alert-danger" *ngIf="pageTitle.errors?.minlength && pageTitle.touched">
Minimum length is 2.
</div>
<div class="form-group">
<label for="">Content:</label>
<textarea class="form-control" name="content" placeholder="Content" cols="30" rows="10" [(ngModel)]="content" #pageContent="ngModel"
minlength="5" required>{{ page?.content }}</textarea>
</div>
<div class="alert alert-danger" *ngIf="pageContent.errors?.required && pageContent.touched">
Content is required.
</div>
<div class="alert alert-danger" *ngIf="pageContent.errors?.minlength && pageContent.touched">
Minimum length is 5.
</div>
<div class="form-group">
<button class="btn btn-default" [disabled]="!f.valid">Edit page</button>
</div>
</form>
显示表单时,文本输入具有正确的值,但它的行为好像没有,因为对其进行验证,并且 textarea 根本不显示真实内容,它显示占位符内容(但当我检查 textarea 时,我可以看到它的真实内容)。
是因为获取数据和显示表单之间的一些延迟还是什么?以及如何解决这个问题?
【问题讨论】:
标签: angular