angular - 用户使用角度编辑表单时如何显示价值
问题描述
我想在用户编辑时编辑并在表单中显示值,请帮助我如何以角度显示值。
编辑-blog.component.ts
import { Component, OnInit } from '@angular/core';
import { Blog } from '../_models/blog';
import { UserService } from '../_services';
import { User } from '../_models'
import { Router } from '@angular/router';
import { AuthenticationServiceService } from '../_services';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { first } from 'rxjs/operators';
@Component({
selector: 'app-edit-blog',
templateUrl: './edit-blog.component.html',
styleUrls: ['./edit-blog.component.css']
})
export class EditBlogComponent implements OnInit {
editBlogForm: FormGroup;
users: User[] = [];
submitted = false;
constructor(private router: Router,
private formBuilder: FormBuilder,
private authenticationService: AuthenticationServiceService,
private userService: UserService) { }
get f() { return this.editBlogForm.controls; }
ngOnInit() {
this.editBlogForm = this.formBuilder.group({
title: [this.users, Validators.required],
blog: [this.users, Validators.required],
});
}
//get f() { return this.editBlogForm.controls; }
editUserBlog(id:number) {
this.userService.editUserBlog(id).pipe(first()).subscribe(users => {
users = users;
console.log(users);
});
}
onSubmit(user: User) {
this.userService.update(user).subscribe(user => {
user = user;
});
}
}
下面是我的 edit-blog.componet.html 我想以这种形式显示价值请帮助如何显示价值。
编辑-blog.component.html
<div>
<div class="container">
<div class="row">
<div class="col-sm-3">
</div>
<div class="col-sm-6" style="margin-top: 60px">
<h2>Update your blog here..</h2>
<form [formGroup]="editBlogForm" (ngSubmit)="onSubmit()">
<div class="form-group">
<input type="text" [(ngModel)]="users.title" formControlName="title" class="input" [ngClass]="{ 'is-invalid': submitted && f.title.errors }"
placeholder="Title" />
<div *ngIf="submitted && f.title.errors" class="invalid-feedback">
<div *ngIf="f.title.errors.required">Title is required</div>
</div>
</div>
<div class="form-group">
<app-ngx-editor type="text" formControlName="blog" height="250px" minHeight="50px" class=""
[placeholder]="'Enter text here...'" [spellcheck]="true" [ngClass]="htmlContent"></app-ngx-editor>
<div *ngIf="submitted && f.blog.errors" class="invalid-feedback">
<div *ngIf="f.blog.errors.required">Blog is required</div>
</div>
</div>
<div class="form-group">
<button class="btn btn-primary">Update</button>
</div>
</form>
</div>
<div class="col-sm-3">
</div>
</div>
</div>
</div>
我在编辑表格时没有得到价值,请帮助我如何显示价值。谢谢你提前。
解决方案
首先,这里是关于表单的 Angular 文档的链接:Forms Overview in Angular
在 Angular 中,有两种主要的创建表单的方法——反应式方法和模板驱动方法。首先,您必须决定首先要采用哪种方法。
反应式方法是一种编程方法,您的表单是在您的 .ts 文件中创建的,并与 HTML 表单模板同步,并应用诸如 formGroup (在开始的表单标记中)和 formControlName 等指令附加到您在您的设置中为此设置的值.ts 文件及其各自的输入标签。
模板驱动的方法主要在您的模板中完成,即 .html 文件......在这种情况下,指令 [ngModel] 用作 formControl 并且 html“名称”属性存在以帮助您跟踪表单值控制台上的表单对象。
但是,要在表单中显示预设值,请先确定要采用的方法。对于 TD 方法 - 只需使用 HTML 属性“值”并将其设置为所需的值。例如用于用户名输入;value="Benneee".... 对于反应式方法 - 在声明 FormGroup 对象的类型之后,代替将表单对象分配给其定义的值并分配不同的表单控件名称,您可以执行以下操作:“用户名”:新的 FormControl("Benneee");
我希望这确实有所帮助,或者至少为您指明了正确的方向。
推荐阅读
- scipy - 如何使用 SciPy 重用 Jacobian 和 Inverse Hessian 最小化
- html - 如何在引导程序中在我的屏幕上均匀分布五列?
- python - python,linux:如何将整个硬盘驱动器作为一个原始二进制文件打开
- python - Python根据列表中的位置将符号映射到数据
- r - 选择分段回归中的断点数
- excel - 在 Excel 中的 Word 文档中插入可调整表格
- javascript - 快速错误处理:向前端发送消息
- java - 在 Java 类文件中使用 0xcafebabe 来识别字节顺序?
- c++ - 在 C++ 中多次调用给定函数时,有没有办法引发编译时错误?
- r - 为 R 数据框的一行中的所有文本添加下划线