Как запустить функцию машинописи (щелкнуть) в другом классе - PullRequest
0 голосов
/ 05 декабря 2018

Я думал, что это сработает, но, по-видимому, либо мой способ реализовать это невозможно, либо я просто делаю что-то не так.

<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 /, поскольку он работает только в классе, к которому он привязан.Я делаю это правильно даже?Есть ли лучшая альтернатива?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...