Я думал, что это сработает, но, по-видимому, либо мой способ реализовать это невозможно, либо я просто делаю что-то не так.
<h1>Makes</h1>
<p *ngIf="!makes"><em>Loading...</em></p>
<table class='table' *ngIf="makes">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Abrv</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let make of makes">
<td>{{ make.id }}</td>
<td>{{ make.name }}</td>
<td>{{ make.abrv }}</td>
<td>
<a [routerLink]="['/editMake/', make.id]" (click)="MakeSelected(make)">Edit</a> |
<a [routerLink]="['/detailsMake/', make.id]">Details</a>|
<a (click)="deleteMake(make.id)">Delete</a> |
</td>
</tr>
</tbody>
</table>
<a [routerLink]="['/createMake/']" >Create new</a>
Видите, у меня есть эта HTML-форма и текущая проблемассылка для редактирования.Посмотрите его, в данный момент перенаправляет вас do / editMake / id, а затем вызывает функцию MakeSelected (make).Но эта функция MakeSelected не находится в классе, к которому привязана форма.Он находится в / editMake / class.
Он выглядит примерно так:
MakeSelected(make: Makes)
{
this.CurrentId = make.Id;
this.CurrentName = make.Name;
this.CurrentAbrv = make.Abrv;
}
Так что он должен взять объект make и затем сравнить его с локальными переменными.Затем эти локальные переменные используются для заполнения формы редактирования с переданной информацией.
<input name="Name" ngDefaultControl type="text" [(ngModel)]="currentName"/>
Но проблема в том, что я не могу запустить функцию MakeSelected в классе / editMake /, поскольку он работает только в классе, к которому он привязан.Я делаю это правильно даже?Есть ли лучшая альтернатива?