#html #angular #database #typescript #crud
Вопрос:
В настоящее время я пытаюсь создать функцию создания, но есть некоторые проблемы.
Поэтому сначала я ввел данные в файл .html.
lt;ng-template #formFieldTemplate let-form="form" let-field="field" let-label="label" let-fullwidth="fullwidth ?? true"gt; lt;mat-form-field [class.fullwidth]="fullwidth" [formGroup]=form *ngIf="form.get(field) as _field" appearance="fill"gt; lt;mat-labelgt;{{label ?? field}}lt;/mat-labelgt; lt;input [id]="field" matInput type="text" [formControlName]="field"gt; lt;/mat-form-fieldgt; lt;/ng-templategt; lt;form [formGroup]="newquoteform" (ngSubmit)="submitquote()" gt; lt;table mat-table [dataSource]="quotes | keyvalue" class="mat-elevation-z8" style="width: 100%;"gt; lt;ng-container matColumnDef="quote"gt; lt;th mat-header-cell *matHeaderCellDefgt; quote lt;/thgt; lt;td mat-footer-cell *matFooterCellDefgt; lt;ng-container *ngTemplateOutlet="formFieldTemplate;context:{form: newquoteform, field: 'quote'}"gt;lt;/ng-containergt; lt;/tdgt; lt;/ng-containergt; lt;ng-container matColumnDef="Delete"gt; lt;th mat-header-cell *matHeaderCellDefgt;lt;/thgt; lt;td mat-footer-cell *matFooterCellDefgt; lt;button mat-icon-button class="small colored accent"gt; lt;mat-icongt;addlt;/mat-icongt; lt;/buttongt; lt;/tdgt; lt;/ng-containergt; lt;tr mat-header-row *matHeaderRowDef="columns"gt;lt;/trgt; lt;tr mat-row *matRowDef="let row; columns: columns;"gt;lt;/trgt; lt;tr mat-footer-row *matFooterRowDef="columns"gt;lt;/trgt; lt;/tablegt; lt;/formgt;
Затем я создал файл .ts с функцией, которая будет реагировать на него:
submitquote() { const quote = this.newquoteform.value as quote const quoteIDs = Object.keys(this.quotes); let id = (quote.quote).replace(/s/g, "") if (quoteIDs.indexOf(id) !== -1) { let i = 2; while (quoteIDs.indexOf(id i) !== -1) i ; id = id i; } this.quotes[id] = quote; this.quotes = {...this.quotes} this.newquoteform.reset(); }
Также в том же файле я поместил:
public quotes !: Recordlt;string, quotegt;; public columns = ['quote','Delete']; public newquoteform = new FormGroup({ quote: new FormControl(null, Validators.required) })
Предполагается, что это создаст новую цитату, но это не работает, потому что функция пытается использовать ключи из всех цитат, чтобы создать новый идентификатор для новой цитаты, но предыдущих цитат нет.
Поэтому я попытался сделать что-то такое, чтобы уже была цитата, прежде чем я вообще что-то сделаю.
This is the .ts file that makes me the interface quote and i tried to make it so that it has two quotes already:
interface QuoteData { quote : string; } export interface quote extends QuoteData{ "quote1": string, "quote2": string }
Но после того, как я использую npm, создайте его, и он сделает dist/quote.js файл(это файл, связанный с сервером), он ничего не вносит в базу данных.
Файл quote.js:
"use strict"; Object.defineProperty(exports, "__esModule", { value: true });
Есть какие-нибудь идеи, которые я могу использовать, чтобы сделать так, чтобы всегда была цитата?