如何在angular 6中获取ngSelect下拉列表的选定文本和选定值

如何在angular 6中获取ngSelect下拉列表的选定文本和选定值,angular,angular-ngselect,Angular,Angular Ngselect,发布表单时,我希望在angular 6中的ngSelect下拉列表中获得所选项目的名称和值 我曾尝试使用ngModel和templateVariable获取它,但并没有返回选定的名称,我只设法获取选定的值 <ng-select name="testFunctionID" [items]="testFunctions" [multiple]="false" bindLabel="name" bindValue="testFunctionID" [(ngModel)]="model

发布表单时,我希望在angular 6中的ngSelect下拉列表中获得所选项目的名称和值

我曾尝试使用ngModel和templateVariable获取它,但并没有返回选定的名称,我只设法获取选定的值

<ng-select
 name="testFunctionID"
 [items]="testFunctions"
 [multiple]="false"
 bindLabel="name"
 bindValue="testFunctionID"
 [(ngModel)]="model.testFunctionID">
</ng-select>


对于下拉列表{Mumbai:1},{Pune:2},{Delhi:3},如果我选择Pune,那么我应该得到“Pune”和“2”作为输出json。

我以前没有使用过该包,但基于你的问题,我很好奇,我想我有一个答案给你

如果您看这里,它在API输入部分指出

bindValue—用于选定模型的对象属性。默认情况下,绑定到整个对象。

因此,我猜想如果省略bindValue属性,您将拥有整个对象,而不仅仅是Id

还注意到,有一个事件,你可以钩到

(更改)-在模型更改时触发。输出整个型号


问题作者指出,无法使下面的内容起作用
所以你可以这样做

<ng-select
 name="testFunctionID"
 [items]="testFunctions"
 [multiple]="false"
 bindLabel="name"
 bindValue="testFunctionID"
 [(ngModel)]="model.testFunctionID"
 (change)="model.testFunctionName = $event.name">
</ng-select>


假设您希望在模型上设置name属性以及Id。

您的观察结果会有所帮助。除去“bindValue”,我可以得到所选项目的完整对象。虽然第二种解决方案不起作用。@MausamMalviya很高兴听到它。我对答案进行了编辑,以表明第二种解决方案不适合您。可能有一些方法可以让它工作,我只是没有使用正确的语法是我的猜测。但我想留下它,以防它在将来引发其他人的想法。@ccamac您的第二个解决方案也可以。在我的例子中,我需要绑定到id而不是对象,但仍然需要获取标签来更新另一个字段,并且能够成功地使用(更改)事件。谢谢