慕碼人8056858
2023-06-09 17:52:00
在我的數(shù)據(jù)庫中,我有很多用戶,他們有很多食譜。每個食譜都有一些屬性和成分集合。因此,當(dāng)用戶在頁面上顯示要編輯的配方時,應(yīng)該會出現(xiàn)(表格)加載了當(dāng)前數(shù)據(jù)的配方。這是一種工作,因為我可以看到數(shù)據(jù),但我認(rèn)為它做得不好。我的表格在沒有數(shù)組(成分)的情況下工作正常。你能告訴我應(yīng)該如何將成分添加到我的編輯表單中嗎?如果您看到我的代碼并給我反饋并提示我應(yīng)該更改什么,我將不勝感激。export class RecipeEditComponent implements OnInit {? @ViewChild('editForm') editForm: NgForm;? recipe: IRecipe;? photos: IPhoto[] = [];? ingredients: IIngredient[] = [];? uploader: FileUploader;? hasBaseDropZoneOver = false;? baseUrl = environment.apiUrl;??? currentMain: IPhoto;? constructor(private route: ActivatedRoute, private recipeService: RecipeService,? ? private toastr: ToastrService) { }? ngOnInit(): void {? ? this.loadRecipe();??? }? loadRecipe() {? ? this.recipeService.getRecipe(this.route.snapshot.params.id).subscribe(recipe => {? ? ? this.recipe = recipe;? ? ? this.initializeUploader();? ? })? }? updateRecipe(id: number) {? ? this.recipeService.editRecipe(id, this.recipe).subscribe(next => {? ? ? this.toastr.success('Recipe updated successfully');? ? ? this.editForm.reset(this.recipe);? ? }, error => {? ? ? this.toastr.error(error);? ? });? }}
1 回答

叮當(dāng)貓咪
TA貢獻(xiàn)1776條經(jīng)驗 獲得超12個贊
問題是必須定義表單上的屬性name,以便 Angular 知道要更新哪個輸入。您將 name 綁定到可編輯模型設(shè)置的同一屬性,這意味著用戶可以編輯它,實際上可以刪除它,這不好。
解決方案是將其更改為不會更改的唯一值。這應(yīng)該有效:
<div *ngFor="let ingredient of recipe.ingredients; let i = index">
? ? <input class="form-control" type="text" name="name{{ingredient.id}}" [(ngModel)]="ingredient.name">
? ? <input class="form-control" type="text" name="amount{{ingredient.id}}" [(ngModel)]="ingredient.amount">
? </div>
</div>
添加回答
舉報
0/150
提交
取消