#angular
Вопрос:
У меня есть таблица, в которой указано несколько клиентов (клиенты в виде списка); когда я нажимаю на код клиента, я получаю подробное представление этого конкретного клиента, в котором я могу изменить его данные.
Когда я получу подробное представление, я хочу «Отредактировать профиль «фамилия клиента» «имя клиента» » в качестве заголовка.
Для этого я написал в коде «Редактировать профиль {{клиент.фамилия}} {{customer.name}}», за исключением того, что ни фамилия, ни имя не указаны.
Как я могу изменить код, чтобы фамилия и имя клиента отображались в заголовке?
<div class="panel panel-default">
<div class="panel-heading">
<h1 style="text-align: center">Customer</h1><br>
<div class="row" [hidden]="!deleteMessage">
<div class="col-sm-4"></div>
<div class="col-sm-4">
<div class="alert alert-info alert-dismissible">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Customer Data Deleted</strong>
</div>
</div>
<div class="col-sm-4"></div>
</div>
</div>
<div class="panel-body">
<table class="table table-hover table-sm">
<thead class="thead-light">
<tr>
<th>Customer Code</th>
<th>Surname</th>
<th>Name</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let customer of customers">
<td>{{customer.customercode}}</td>
<td>{{customer.surname}}</td>
<td>{{customer.name}}</td>
<td><button (click)="deleteCustomer(customer.customercode)" class='btn btn-primary'><i
class="fa fa-futboll-0">Delete</i></button>
<button type="button" class="btn btn-primary" (click)="openModal(editProfileModal, customer)" >Update</button>
</td>
</tr>
</tbody><br>
</table>
</div>
</div>
<ng-template #editProfileModal let-modal>
<div class="modal-header">
<h5 class="modal-title" id="editProfileLabel">Edit Profile of {{customer.surname}} {{customer.name}}</h5>
<button type="button" class="close" (click)="modal.dismiss()" aria-label="Close">
<span aria-hidden="true">amp;times;</span>
</button>
</div>
<div class="modal-body">
<form [formGroup]="editProfileForm" (ngSubmit)="updateCust()">
<div class="form-group row">
<label for="customercode" class="col-sm-4 col-form-label">Customer code</label>
<div class="col-sm-8">
<input type="text" class="form-control" formControlName="customercode" id="customercode">
</div>
</div>
<div class="form-group row">
<label for="surname" class="col-sm-4 col-form-label">Surname</label>
<div class="col-sm-8">
<input type="text" class="form-control" formControlName="surname" id="surname">
</div>
</div>
<div class="form-group row">
<label for="name" class="col-sm-4 col-form-label">Name</label>
<div class="col-sm-8">
<input type="text" class="form-control" formControlName="nome" id="name">
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-success" [hidden]="isupdated">Confirm update</button>
<button type="button" class="btn btn-danger" data-dismiss="modal" (click)="modal.dismiss()">Close</button>
</div>
</form>
</div>
</ng-template>
Комментарии:
1. В качестве заголовка страницы?
2. См.: angular.io/guide/set-document-title для установки заголовка документа
Ответ №1:
Решение
Измените свой модал, чтобы ссылаться на какую-либо другую переменную, такую как selectedCustomer, как показано ниже
<ng-template #editProfileModal let-modal>
<div class="modal-header">
<h5 class="modal-title" id="editProfileLabel">Edit Profile of {{selectedCustomer.surname}} {{selectedCustomer.name}}</h5>
<button type="button" class="close" (click)="modal.dismiss()" aria-label="Close">
<span aria-hidden="true">amp;times;</span>
</button>
</div>
И в вашей функции openModal установите эту переменную для клиента
selectedCustomer;
openModal(modalRef, customer){
this.selectedCustomer = customer;
// open the modal, etc.
}
Объяснение
клиент определяется только в теге, который имеет *ngFor, т. е.
<!--customer is undefined here->
<tr *ngFor="let customer of customers">
<!--customer is defined here->
<td>{{customer.customercode}}</td>
<td>{{customer.surname}}</td>
<td>{{customer.name}}</td>
<td><button (click)="deleteCustomer(customer.customercode)" class='btn btn-primary'><i
class="fa fa-futboll-0">Delete</i></button>
<button type="button" class="btn btn-primary" (click)="openModal(editProfileModal, customer)" >Update</button>
</td>
<!--customer is defined here->
</tr>
<!--customer is undefined here->
Комментарии:
1. отличное спасибо, это было то, чего я хотел. И последнее: поскольку я новичок, я хотел бы знать, но для чего нужен openModal? Я мало что понял из Интернета