node.js - Angular中的Textarea不显示文本
问题描述
首先,如果我听起来很傻,我很抱歉,但我是 Angular 的新手,所以请理解。
我在数据库中有一个模式,它由一个答案字段组成。用户填写答案并提交,以便将他的答案添加到数据库中。
现在,当用户单击 Edit Answer 按钮时,用户将被重定向到一个新组件。
在 component.ts 文件中,我声明了一个全局变量,并在 HTML 中发送它的值。但是,当我在内部使用 [(ngModel)] 时,我的文本区域显示为空白。当我不添加 [(ngModel)] 时,文本就会出现。
我想要实现的两件事:
1) 从打印在 .ts 文件中的全局变量中获取文本。
2) 更新此文本并将其存储回 .ts 文件中的相同或其他变量中。
//.html
<div class="form-group" *ngIf="answers">
<textarea name="ans" [(ngModel)]="ans" rows="5" class="form-
control">
{{answers.data.answer}}</textarea>
</div>
<div class="form-group">
<button class="btn btn-primary" (click)="submitAnswer(ans)">
Update Answer
</button>
</div>
// .ts
export class EditanswerComponent implements OnInit {
qaId: any;
question: any;
answers: any;
constructor(
private route: ActivatedRoute,
private apiService: ApiserviceService) {
console.log(this.route.snapshot);
}
ngOnInit() {
this.route.params.subscribe(params => {
this.qaId = params;
});
this.apiService.viewAnswerById(this.qaId.aId).subscribe(ansObj => {
console.log("Answer Object", ansObj);
this.answers = ansObj;
console.log(this.answers.data.answer);
});
}
submitAnswer(ans) {
this.answers = ans;
console.log(this.answers);
}
}
解决方案
您不需要{{answers.data.answer}}
在 textarea 中使用:
<textarea name="ans" [(ngModel)]="ans" rows="5" class="form-
control">
{{answers.data.answer}}</textarea>
只需绑定到即可NgModel
,如果您的模型ans
有任何值,它将显示在文本区域中。
<textarea name="ans" [(ngModel)]="ans" rows="5" class="form-
control"></textarea>
或者您可以[(ngModel)]= "answers?.data.answer"
在文本区域设置:
<textarea name="ans" [(ngModel)]="answers?.data.answer" rows="5" class="form-
control"></textarea>
推荐阅读
- swiftui - 根据@State 变量的值变化重新加载视图
- c# - 运行寻路代码时Unity中的无限循环
- javascript - 提交后如何关闭引导模式?
- ios - 使用 GitHub Actions 构建 iOS React Native 应用程序
- javascript - 不要在 html 中按下按钮获得价值
- python - 如何访问包含实例成员的python静态方法?
- docker - 在 Dokku 中使用 Dockerized Vue 应用程序获取环境变量
- spring-boot - 启用 Spring webclient 以通过 HTTPS 与其他启用 TLS 的服务进行通信
- python - 使用 zip() 后删除重复列表
- asp.net-core - NetCore 3.1 将 IdentityServer4 与现有数据库和用户表一起使用