Angularjs 角度数据绑定<;选择>;是空的

Angularjs 角度数据绑定<;选择>;是空的,angularjs,data-binding,Angularjs,Data Binding,以下是与AngualarJS绑定的下拉数据: <select name="lineCode" class="form-control input-sm" ng-model="monitoringProbe.tdmCapture.selectedTDMCard.layer1Properties.lineCode" ng-options="l.id as l.name for l in monitoringProbeTDMCaptureData.lineC

以下是与AngualarJS绑定的下拉数据:

   <select name="lineCode" class="form-control input-sm"
        ng-model="monitoringProbe.tdmCapture.selectedTDMCard.layer1Properties.lineCode"
        ng-options="l.id as l.name for l in monitoringProbeTDMCaptureData.lineCodes"
                    required >
   </select>
根据下面的帖子,当ng模型中没有与下拉列表中的项目匹配的值时。

因此,我强制列表中的第一个元素为选定值,如下所示:

 virtualServerMonitoringProbeService.comboProperties().query({},{itemType:1, interfaceType: interfaceType}).$promise.then(
            function(result){
                monitoringProbeTDMCaptureData.lineCodes = result;
            },
            function(error){
                messageNotificationFactory.setNotification('error', error.data.message);
            }
        );
     virtualServerMonitoringProbeService.comboProperties().query({},{itemType:1, interfaceType: interfaceType}).$promise.then(
            function(result){
                monitoringProbeTDMCaptureData.lineCodes = result;
                tdmCapture.selectedTDMCard.layer1Properties.lineCode = monitoringProbeTDMCaptureData.lineCodes[0];
            },
            function(error){
                messageNotificationFactory.setNotification('error', error.data.message);
            }
        );
但下拉选择仍然是空的。在运行时,它看起来是这样的:

<select name="lineCode" class="form-control input-sm ng-pristine ng-valid ng-valid-required" ng-model="monitoringProbe.tdmCapture.selectedTDMCard.layer1Properties.lineCode" ng-options="l.id as l.name for l in monitoringProbeTDMCaptureData.lineCodes" required="">
   <option value="?" selected="selected"></option>
   <option value="0">AMI</option>
    <option value="1">B8ZS</option>
</select>

阿美族
B8ZS

此代码有问题吗?

由于您在ngoption
ng options=“l.id as l.name for l in monitoringProbeTDMCaptureData.lineCodes”
中使用语法“
数组中的
值选择
作为
标签”
,因此您需要您的ng模型保存所选项目的id以进行默认选择。但看起来您正在设置对象模型

尝试更改:-

    tdmCapture.selectedTDMCard.layer1Properties.lineCode = 
                   monitoringProbeTDMCaptureData.lineCodes[0];


可能您在型号中也缺少
monitoringProbe

尝试
tdmCapture.selecteddmcard.layer1Properties.lineCode=monitoringProbeTDMCaptureData.lineCodes[0]。id
,您缺少
.id
,因为您在ng选项中提到了
l.id作为l.name
。我真的忽略了这一点。monitoringProbe-这是在父工厂中声明的,可以访问。
 tdmCapture.selectedTDMCard.layer1Properties.lineCode = 
                    monitoringProbeTDMCaptureData.lineCodes[0].id;