Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何使用添加表单作为编辑?_Angular_Typescript - Fatal编程技术网

Angular 如何使用添加表单作为编辑?

Angular 如何使用添加表单作为编辑?,angular,typescript,Angular,Typescript,我有这样一个简单的add表单 <form class="form" [formGroup]="registerForm" (ngSubmit)="onSubmit()"> <div class="row"> <div class="col-md-12"> <div class=

我有这样一个简单的add表单

    <form class="form" [formGroup]="registerForm" (ngSubmit)="onSubmit()">
        <div class="row">
            <div class="col-md-12">
                <div class="form-group">
                    <label for="floatEmail">Product Name</label>
                    <input type="text" class="form-control"  name="name" formControlName="name" >
                    <div *ngIf="submitted && f.name.errors">
                        <small class="form-text text-muted danger" *ngIf="f.name.errors.required" >Please enter a name!</small>
                    </div>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-12">
                <div class="form-group">
                    <label for="floatEmail">Product Arabic Name</label>
                    <input type="text" class="form-control"  name="arname" formControlName="arname" >
                    <div *ngIf="submitted && f.arname.errors">
                        <small class="form-text text-muted danger" *ngIf="f.arname.errors.required" >Please enter a arname!</small>
                    </div>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-12">
                <fieldset class="form-group">
                    <label for="placeTextarea">Product Description</label>
                    <textarea class="form-control" id="placeTextarea" rows="3" name="description" formControlName="description" placeholder="Textarea with placeholder"></textarea>
                    <div *ngIf="submitted && f.description.errors">
                        <small class="form-text text-muted danger" *ngIf="f.description.errors.required" >Please enter a description!</small>
                    </div>
                </fieldset>
            </div>
        </div>
        -->

        <div class="form-group">
            <div class="col-md-12 text-right">
                <button type="button" class="btn btn-success btn-raised mr-1">Cancel</button>
                <button type="button" class="btn btn-danger btn-raised" (click)="onSubmit()">Submit</button>
            </div>
        </div>
    </form>
我需要知道如何使用与“编辑”相同的表单

意思是在编辑中,我有输入中的所有字段,但我如何知道它是编辑调用而不是添加调用

我只是使用一个路由器链接,像这样,我需要传递一些东西,以便我知道它的编辑形式还是什么

routerLink="/full-layout/edit-form"

您可以在编辑模式下向窗体传递一些参数标志。在表单中,您可以检查标志值并决定添加模式或编辑模式。

您可以在路由中放置一些ID,以识别此页面处于编辑模式:

{
路径:“完整布局/:选项”,
组件:FullLayoutComponent,

},
您可以使用对象作为ngModel,因此当您要创建新产品时,您可以将主对象的所有字段设置为null(以便从表单中更改它们),当您编辑产品时,您只需将产品克隆到ngModel产品中

大概是这样的:

.ts:

html:


这将有助于解决您的问题!:)

routerLink="/full-layout/edit-form"
editProduct(){
   this.formProduct = productToEdit;
}

createProduct(){
   this.formProduct = new Product();
}
<input type="text" class="form-control" [(ngModel)]="formProduct.arname" name="arname" formControlName="arname" >