2017-08-28 254 views
0

我不明白为什么我的价值没有被选中。在AngularJS的选择标签中选择一个项目

我有一个editItem(对象类型是实体)与包含另一个项目(对象类型赞助商)的名称字段。

在下面的例子中,SPONSOR_NAME是赞助对象

这里的名字是我的模型(“实体”对象)

{ 
    "id": 130, 
    "Entity_name": "RH-commun", 
    "Entity_sponsor": "AUFC", 
    "Entity_billing_code": "137" 
} 

这里是提案国的名单(subObjectList)

[ 
{ 
    "id": 1, 
    "objectType": "Sponsor", 
    "content": "{\"id\": 376316, \"Sponsor_name\": \"AUFC\"}", 
    "previewContent": { 
    "id": 1, 
    "Sponsor_name": "AUFC" 
    }, 
"relationNumber": null 
}, 
{ 
    "id": 2, 
    "objectType": "Sponsor", 
    "content": "{\"id\": 376317, \"Sponsor_name\": \"B3G\"}", 
    "previewContent": { 
    "id": 2, 
    "Sponsor_name": "B3G" 
    }, 
"relationNumber": null 
} 
] 

现在,这是我在我的角度代码的HTML

$scope.form += '<select class="form-control" id="' + keyname + '" name="' + keyname + '" type="text" ng-model="editItem.previewContent.' + keyname + '" ng-options="item.previewContent.' + childName + ' for item in subObjectList track by item.previewContent.' + childName + '" ng-required="' + isRequired + '" /> ' 

keyname等于"Entity_sponsor"childname等于"Sponsor_name"

这是选择最终生成的html:

<select class="form-control ng-pristine ng-empty ng-invalid ng-invalid-required ng-touched" id="Entity_sponsor" name="Entity_sponsor" type="text" ng-model="editItem.previewContent.Entity_sponsor" ng-options="item.previewContent.Sponsor_name for item in subObjectList track by item.previewContent.Sponsor_name" ng-required="true" required="required"> 
    <option value="?" selected="selected"></option><option label="AUFC" value="AUFC">AUFC</option> 
    <option label="B3G" value="B3G">B3G</option><option label="B-DIG" value="B-DIG">B-DIG</option> 
    <option label="BEEI" value="BEEI">BEEI</option><option label="BEF" value="BEF">BEF</option> 
    <option label="BIN" value="BIN">BIN</option><option label="DEC" value="DEC">DEC</option><option label="DGAZ" value="DGAZ">DGAZ</option><option label="DGF" value="DGF">DGF</option> 
    <option label="DGR" value="DGR">DGR</option><option label="DOAAT" value="DOAAT">DOAAT</option><option label="DPNT" value="DPNT">DPNT</option><option label="DSP" value="DSP">DSP</option> 
    <option label="ERD" value="ERD">ERD</option><option label="ENEDIS" value="ENEDIS">ENEDIS</option> 
    <option label="FCC" value="FCC">FCC</option><option label="FIL" value="FIL">FIL</option> 
    <option label="GRDF" value="GRDF">GRDF</option><option label="PREST" value="PREST">PREST</option> 
    <option label="RTE" value="RTE">RTE</option><option label="SEI" value="SEI">SEI</option> 
    <option label="SG" value="SG">SG</option><option label="TIE" value="TIE">TIE</option> 
    <option label="DPIH" value="DPIH">DPIH</option><option label="DIPNN" value="DIPNN">DIPNN</option> 
    <option label="DISP" value="DISP">DISP</option><option label="DI" value="DI">DI</option> 
</select> 

因此,对于每个实体的项目,如果我编辑之一,选择绑定到实体对象的赞助商是空的。该列表由赞助项目填写,但没有办法有一个选定的值

+0

请JSON数据替换图像。 –

+1

为什么你在控制器中有'$ scope.form' html;你可以直接将该HTML代码放在View中吗? – Rahul

+0

不,因为我使用不同类型的对象生成动态表单。但它可以与其他组件一起使用,如。我得到了我的editItem的值,但没有选择 – galiolio

回答

0

发现的解决方案:

更换

ng-options="item.previewContent.' + childName + ' for item in subObjectList track by item.previewContent.' + childName + '" ng-required="' + isRequired + '" /> ' 

通过

ng-options="item.previewContent.' + childName + ' as item.previewContent.' + childName + ' for item in subObjectList ' 
相关问题