我需要创建多个行,其中包含两个字段,一个下拉列表和一个文本框。 我创建了一个Json数组,用于将每一行保存为对象。我想将下拉列表作为对象的json数组添加到包含行的对象的json数组中。 我的代码如下:
//Declare empty array to add new rows
$scope.searchList ={
sources: [{
id: $scope.rowId,
srcCd: '',
srcId:''
//want to add sourceCdMap property and assign the json array which is in another scope variable $scope.sourceCodeMap
}]
}

<table>
<tr ng-repeat="source in searchList.sources track by source.id">
<td>
<div >
<label >Source Name</label>
<div >
<select class="form-control selectWidth" autofocus ng-model="source.srcCd"
ng-change="changeSourceNew(source.id,source.srcCd)"
ng-options="source.value for source in source.sourceCdMap"></select>
</div>
</div>
</td>
<td>
<div >
<label >Source ID </label>
<div><textarea id="source.textarea" autofocus ng-model="source.srcId" rows="4" cols="50" placeholder="enter SrcIds"></textarea>
</div>
</div>
</td>
</tr>
</table>
&#13;
我想添加一个&#34; sourceCdMap&#34;对象$ scope.searchList的json数组的属性,它将包含存储在$ scope.sourceCodeMap中的另一个json对象数组的下拉值。
我尝试如下,但下拉列表为空:
initializeSourceCodeMap();
var initializeSourceCodeMap = function () {
$searchUtilityRemoteService.getSourceCode().then(function (resultMap) {
$scope.sourceCodeMap = resultMap;
$scope.sourceCodeMap.sort(sortSrcCodeBy("value"));
$scope.selected = $scope.sourceCodeMap[0];
$scope.searchIdForm.srcCd = $scope.selected.code;
}, function (reason) {
$scope.sourceCodeMap = null;
//log error
})
};
//Declare empty array to add new rows
$scope.searchList ={
sources: [{
id: $scope.rowId,
srcCd: '',
srcId: '',
sourceCdMap: $scope.sourceCodeMap
}]
}
&#13;
FYI&#34; $ scope.sourceCodeMap&#34;正在代码的其他部分工作或当我尝试在我的控制台中记录它时。
如何分配此范围变量&#34; $ scope.sourceCodeMap&#34; (实际上是一个json自身对象数组)到新属性&#34; sourceCdMap&#34;在Json Array&#34; $ scope.searchList&#34;
答案 0 :(得分:0)
尝试在此功能中登录
function (reason) {
$scope.sourceCodeMap = null;
//log error
}
看看你的 $ scope.sourceCodeMap 是否总是因为它而为空。
如果情况并非如此,请尝试使用 $ scope.apply(); ,以便html可以看到您的更改。小心异步调用它。