选择控件数据绑定在IE9中不起作用

时间:2014-08-22 05:19:42

标签: angularjs internet-explorer select data-binding

我有一个下拉控件数据绑定如下:

 <select name="trafficGroup" class="form-control input-sm"
                    ng-model="monitoringProbe.tdmCapture.selectedTDMCard.timeSlotProperties.trafficGroup"
                    required
                    ng-style="{'width':'100%'}"
                    ng-disabled="!monitoringProbe.tdmCapture.selectedTDMCard.isEditMode"
                    ng-if="monitoringProbeTDMCaptureData.trafficGroups.length > 0">
            <option value="{{tg.id}}"  ng-repeat="tg in monitoringProbeTDMCaptureData.trafficGroups" > {{tg.name}}</option>
            </select>

我明确设置monitoringProbe.tdmCapture.selectedTDMCard.timeSlotProperties.trafficGroup的值,如下所示,否则其默认值为空:

          if(tdmCapture.selectedTDMCard.timeSlotProperties.trafficGroup == 0)
                    tdmCapture.selectedTDMCard.timeSlotProperties.trafficGroup = app.meta.monitoringprobe.tdmCaptureTabData.trafficGroups[1];

除IE9外,所有浏览器都可以正常使用。在IE9中我在下拉列表中看到的是{{tg.name}}

我添加ng-if="monitoringProbeTDMCaptureData.trafficGroups.length > 0"以避免这种情况,但问题仍然存在。

知道如何解决它吗?

1 个答案:

答案 0 :(得分:2)

您可以使用select指令的ng-options属性,而不是使用带选项标记的ng-repeat。如果这可以解决您所看到的问题,我不会乐观,但这通常是更好的方法。

<select ng-options="tg.id as tg.name for tg in monitoringProbeTDMCaptureData.trafficGroups">
</select>

如果您希望默认值为空,则只需包含一个空值的选项标记。

<select ...>
    <option value=""></option>
<select>