【发布时间】:2018-11-09 22:01:02
【问题描述】:
我有一个带有multiple 选项集的<mat select>(多选)。当selectionChange 事件触发时,我需要知道哪个选项已被选中或未选中,但是,它只返回新的当前选定选项列表。
例如我有一个列表:
<mat-select (selectionChange)="change($event)" multiple placeholder="Select">
<mat-option value="1">one</mat-option>
<mat-option value="2">two</mat-option>
<mat-option value="3">three</mat-option>
<mat-option value="4">four</mat-option>
</mat-select>
如果选项one、three 和four 被选中,然后用户未选中选项four,在事件处理程序中我需要知道哪个选项触发了事件(即选项four)及其新状态。我目前在selectionChange 事件中看不到访问该信息的方法。
https://stackblitz.com/edit/angular-1e9gsd?file=app/select-overview-example.ts
我尝试将事件处理程序 (selectionChange)="change($event)" 放在 <mat-option> 上,但似乎不受支持。
【问题讨论】:
-
事件中有没有,console.log(event.value);
-
new selection不是new value吗?你可以解释吗 ?console.log(event.value);对我来说看起来不错。看来您必须澄清您的问题。 -
对不起。我搞砸了这个例子......它应该是一个多选,就像标题所说......现在修复了这个例子。 Event.value 会返回一个包含所有选择的数组。我只想要选择的新事物,最好不要缓存旧的选择值并进行比较以查找更改的内容。
标签: angular angular-material multi-select