获取angular2中的自定义html属性值
我正在使用Angular 2构建我的应用程序。这是我目前的代码: 模板获取angular2中的自定义html属性值,angular,angular2-template,Angular,Angular2 Template,我正在使用Angular 2构建我的应用程序。这是我目前的代码: 模板 <select class="form-control input-xs" [(ngModel)]="filter.coordinatorId" name="coordinatorId" (ngModelChange)="onCoordinatorChange($event)"> &
<select class="form-control input-xs" [(ngModel)]="filter.coordinatorId" name="coordinatorId" (ngModelChange)="onCoordinatorChange($event)">
<option *ngFor="let coordinator of coordinators; let i = index" [value]="coordinator.id" [selected]="i==0">{{coordinator.name}}</option>
</select>
如您所见,我在选项中设置了[value]=“coordinator.id”
,因此我在警报中获得了coordinator.id
值,如果我将其更改为coordinator.name
,那么我将获得该值。但这里我想得到多个值,比如coordinator.id
,coordinator.name
,coordinator.department
等等。因此,一个解决方案可以使用逗号分隔,但如果出现其他参数,这将很难看,很难维护。我是否有其他选项来编写函数,例如:
onCoordinatorChange(coordinatorId: number, name: string, department: string){
alert(coordinatorId);
//business logic
}
您可以使用[ngValue]
而不是[value]
,并传递协调器
而不是协调器.id
[ngValue]="coordinator"
但这需要更改为
[(ngModel)]="filter.coordinator"
使用[ngValue]
而不是[value]
,只需将整个对象设置为一个值,这样您就可以传递整个对象并访问其所有属性:
<select class="form-control input-xs" [(ngModel)]="filter.coordinator" name="coordinatorId" (ngModelChange)="onCoordinatorChange($event)">
<option *ngFor="let coordinator of coordinators; let i = index" [ngValue]="coordinator" [selected]="i==0">{{coordinator.name}}</option>
</select>
{{coordinator.name}
这两个令人惊叹的答案几乎都是在短时间内得到的,+1。不知道该接受什么;)接受Stefans。真有趣的情况,哈哈!写一篇关于stackoverflow meta的文章,并要求选择接受两个答案。;-)太麻烦了。我没有因为缺少代表而痛苦,所以不用担心;-)@GünterZöchbauer哈哈。。是的,你应该开始只回答赏金问题:两个很棒的答案几乎没时间就来了,+1。不知道该接受什么;)
<select class="form-control input-xs" [(ngModel)]="filter.coordinator" name="coordinatorId" (ngModelChange)="onCoordinatorChange($event)">
<option *ngFor="let coordinator of coordinators; let i = index" [ngValue]="coordinator" [selected]="i==0">{{coordinator.name}}</option>
</select>