Gotam sharma Ответов: 0

Получение ошибки и попытался решить, но не получил никакого решения


HTML-код:
<div class="row">
    <div class="col-xs-12">
        <form [formGroup]="recipeForm" (ngSubmit)="onSubmit()" >
            <div class="row">
                <div class="col-xs-12">
                    <button type="submit" class="btn btn-success" [disabled]="!recipeForm.valid">Save</button>
                    <button type="button" class="btn btn-danger" (click)="onCancel()">Cancel</button>
                </div>
            </div>
            <div class="row">
                <div class="col-xs-12">
                    <div class="form-group">
                        <label for="name">Name</label>
                        <input
                        type="text"
                        id="name" 
                        [formControlName]="'name'"
                        class="form-control">
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="col-xs-12">
                    <div class="form-group">
                        <label for="ImagePath">ImageUrl</label>
                        <input
                        type="text"
                        id="ImagePath"
                         class="form-control"
                         [formControlName]="'imagePath'"
                         #imagePath>
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="col-xs-12">
                   <img src="imagePath.value" class="img-responsive" >
                </div>
            </div>
            <div class="row">
                <div class="col-xs-12">
                    <div class="form-group">
                        <label for="description">Description</label>
                        <textarea
                        type="text"
                        id="description"
                        [formControlName]="'description'"
                         class="form-control"
                         rows="6"></textarea>
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="col-xs-12" formArrayName="ingredients">
                   <div class="row"
                    *ngFor="let ingredientCtrl of 
                    controls; let i=index"
                   [formGroupName]="i"
                    style="margin-top:10px;">
                       <div class="col-xs-8">
                    <input
                    type="text"
                     class="form-control"
                     [formControlName]="'name'">
                   </div>
                    
                   <div class="col-xs-2">
                     <input
                     type="number"
                      class="form-control"
                      [formControlName]="'amount'">
                    </div>
                    <div class="col-xs-2">
                       <button 
                        type="button"
                       class="btn btn-danger" (click)="onDeleteIngredient(i)">X</button>
                    </div>
                </div>
                <div class="row">
                <div class="col-xs-12">
                    <button
                    type="button" 
                    class="btn btn-success" 
                    (click)="onAddIngredient()">Add Ingredients</button>
                </div>
                </div>
            </div>
        
    </div>
    </form>





МОЙ ФАЙЛ.TS

импорт { компонент, функции OnInit } от '@угловых/центральных;
импорт { параметры, ActivatedRoute, маршрутизатор } от '@угловое/маршрутизатор';
импорт {FormGroup, FormControl, FormArray, Validators} из '@angular/forms';
импорт { RecipeService } из '../recipe.service';


@Компонент({
селектор: 'приложение-рецепт-редактирование',
templateUrl: './recipe-edit.component.html',
styleUrls: ['./recipe-edit.component.css']
})
экспорт класса RecipeEditComponent реализует OnInit {

идентификационный номер;
editMode=false;
recipeForm:FormGroup;

конструктор(private route:ActivatedRoute,private recipeService:RecipeService,
частный маршрутизатор:маршрутизатор) { }

ngOnInit(): void {
это.маршрут.параметры.подписаться(
(params:Params)=>{
this.id=+params['id'];
this.editMode=params['id']!=null;
console.log( this.editMode);
this.initForm();//мы загружаем его сюда, потому что когда наш маршрут изменится
//затем мы должны загрузить его(тогда по нему мы узнаем, что эта страница перезагружается)
}
);
}
получить контроль(){
return (<formarray>this.recipeForm.get('ingredients')).controls;
}

onSubmit(){
//const newRecipe=новый рецепт(
// это.recipeForm.значение['имя'],
// this.recipeForm.value['описание'],
// это.recipeForm.значение['продуктам'],
//this.recipeForm.value['ингредиенты']);
если(это.editMode){
this.recipeService.updateRecipe(this.id,this.recipeForm.value);
}еще{
this.recipeService.addRecipe(this.recipeForm.value);
}

это.и oncancel();
}
onAddIngredient(){
(<formarray> this.recipeForm.get('ингредиенты')).push(
новая Формгруппа({
'name':new FormControl(null,Validators.required),
'amount':new FormControl(null,[Validators.required,Validators.pattern(/^[1-9]+[0-9]+$/)])
})
);
}
и oncancel(){
this.router.navigate(['../'],{relativeTo:this.route});
}
onDeleteIngredient(индекс:число){
(<formarray>this.recipeForm.get('ингредиенты')).removeAt(индекс);
}
частная инициализация() {
пусть recipeName=";
пусть recipeImagePath=";
пусть recipeDescription=";
пусть recipeIngredients=new FormArray([]);
если(это.editMode){
рецепт от const=это.recipeService.getRecipe(это.идентификатор);
recipeName=recipe.name;
recipeImagePath=recipe.imagePath;
recipeDescription=рецепт.описание;
если(рецепт['Ингредиенты']){
для(Пусть ингредиент рецепта.Ингредиенты){
recipeIngredients.толчок(
новая Формгруппа({
'name':новый FormControl(ingredient.name,валидаторы.требуется),
'amount':new FormControl(ingredient.amount,[Validators.required,Validators.pattern(/^[1-9]+[0-9]*$/)])
})
);
}
}
это.recipeForm=новый FormGroup(
{
'name':new FormControl(recipeName,Validators.required),
'imagePath':новый FormControl(recipeImagePath,Validators.required),
'description':новый FormControl(recipeDescription,Validators.required),
"ингредиенты":recipeIngredients
}
);

}
}



}







возникшая ошибка:

core.js:6185 ERROR ошибка: formGroup ожидает экземпляр FormGroup. Пожалуйста, передайте один из них.

Пример:






В вашем классе:

это.команды mygroup = новый FormGroup({
имя пользователя: new FormControl()
});
at Function.missingFormException (forms.js:2342)
в FormGroupDirective._checkFormPresent (forms.js:7724)
в FormGroupDirective.ngOnChanges (forms.js:7514)
в FormGroupDirective.wrapOnChangesHook_inPreviousChangesstorage (core.js:26853)
в callHook (core.js:4690)
в callHooks (core.js:4650)
в executeInitAndCheckHooks (core.js:4591)
at selectIndexInternal (core.js:9621)
в модуле.Advance (Core. js: 9582)
в RecipeEditComponent_Template (recipe-edit.component.html:6)
defaultErrorLogger @ core.js:6185
handleerror с @ сердечника.ДШ:6238
(анонимно) @ сердечника.ДШ:42725
зоне-вечнозеленые ссылаться на @.ДШ:364
run @ zone-evergreen.js:123
runOutsideAngular @ core.js:41122
отметьте @ сердечника.ДШ:42722
(анонимно) @ сердечника.ДШ:42562
зоне-вечнозеленые ссылаться на @.ДШ:364
onInvoke @ core.js:41286
зоне-вечнозеленые ссылаться на @.ДШ:363
run @ zone-evergreen.js:123
run @ core.js:41061
next @ core.js:42559
schedulerFn @ core.js:36889
__tryOrUnsub @ Subscriber.js:183
next @ Subscriber.js:122
_next @ Subscriber.js:72
next @ Subscriber.js:49
next @ Subject.js:39
emit @ core.js:36851
checkStable @ core.js:41200
onHasTask @ core.js:41307
hasTask @ zone-evergreen.js:419
Зоне-вечнозеленые _updateTaskCount @.ДШ:440
Зоне-вечнозеленые _updateTaskCount @.ДШ:263
runTask @ zone-evergreen.js:184
drainMicroTaskQueue @ zone-evergreen.js:569
invokeTask @ zone-evergreen.js:484
invokeTask @ zone-evergreen.js:1621
globalZoneAwareCallback @ zone-evergreen.js:1647

Что я уже пробовал:

перепробовал все решения из StackOverflow но не смог найти решение

0 Ответов