Slice Pipe在onChange的下拉菜单中抛出修剪过的字符串,而不是原来的字符串



当字符串长度大于5时,我想从对象中修剪字符串,所以我在HTML中使用了切片管道,但是当onChange事件发生时,它正在传递由管道完成的修剪值,而不是原始的。

studentList = [{"StudentName":"RockAngelWatson", studentId: "1"},
{"StudentName":"MiyaAngelWatson", studentId: "2"}] ;
onChange(event,name)
{
console.log("&&&&",name)
}
<select class="form-control" (change)="onChange($event,action)"  triggers="hover" container="body" placement="bottom auto" 
[(ngModel)]="action">
<option *ngFor="let action of studentList">
{{action.StudentName.length > 5 ? (action.StudentName | slice:0:5)+'...':(action.StudentName)}}
</option>
</select>

控制台名称结果为"RockA…"但我想要的全名不修剪字符串更改方法,这只是原来的字符串"RockAngelWatson"。

这个问题与SlicePipe没有直接关系,更不用说Angular了,而是因为你没有将[value]绑定到<option>,所以option中的文本被认为是value绑定到[(ngModel)]

解决方案很简单,将[value]添加到<option>:

<option *ngFor="let action of studentList" [value]="action.StudentName">

最新更新