当字符串长度大于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">