Angular JS - 获取选择控件的选定文本

dev*_*evC 5 angularjs angularjs-ng-options angularjs-ng-model

我已按照以下链接解决问题,但它不起作用: 如何使用AngularJS获取选项文本值?

我有一个包含一组服务器的下拉列表.当我从下拉列表中选择一个值时,我希望所选值显示在一个单独的div中.这是我做的:

选择控制:

 <select name="source" class="form-control input-sm"
                        ng-model="filterOptions.hostId"
                        ng-options="s.id as s.hostName for s in physicalServerList"
                        ng-style="{'width':'100%'}">
                </select>
Run Code Online (Sandbox Code Playgroud)

显示所选文本:

<span class="pull-left">Source: {{ filterOptions.hostId.hostName }}</span>
Run Code Online (Sandbox Code Playgroud)

但是,这不会显示所选文本.我究竟做错了什么?

PSL*_*PSL 7

它不显示所选文本,因为您的模型将具有所选项目的ID,因为在ng-options中使用了s.id as s.hostName(select as label syntax).只需select as从语法中删除该部分,让ng-model保持所选对象的引用本身而不仅仅是id.

所以你的ng选项: -

ng-model="filterOptions.host"
ng-options="s.hostName for s in physicalServerList track by s.id"
Run Code Online (Sandbox Code Playgroud)

并且您的模型将是所选对象,而不仅仅是所选项目的ID

<span class="pull-left">Source: {{ filterOptions.host.hostName }}</span>
Run Code Online (Sandbox Code Playgroud)

Plnkr