我正在尝试使用ng-options
在我的选择框中选择默认值(来自数据库)。
<select class="form-control samlength modalinput"
ng-options="p.procid as p.procname for p in processes track by p.procid"
ng-model="p.procid">
<option value="">-- choose an option --</option>
</select>
其中p.procid
是从数据库接收的值。
procid procname time
1 MyProcess 2018-05-30 13:34:54.097 3003162
3 Testing 2018-05-31 18:31:32.467 3003162
如果选择procid
为3,默认情况下如何选择它?
仅供参考 - 我尝试过在其他主题中给出的多个答案。我也试过ng-init
,但没有任何帮助。
答案 0 :(得分:2)
您可以将HTML保留为:
<select class="form-control samlength modalinput"
ng-options="p.procid as p.procname for p in processes track by p.procid"
ng-model="selectedProcess">
<option value="">-- choose an option --</option>
</select>
现在,如果我们需要选择数组中的特定对象。我们可以通过迭代数组并比较给定键的值来实现:
function functiontofindIndexByKeyValue(arraytosearch, key, valuetosearch) {
for (var i = 0; i < arraytosearch.length; i++) {
if (arraytosearch[i][key] == valuetosearch) {
return i;
}
}
return null;
}
将此功能称为:
var index = functiontofindIndexByKeyValue($scope.processes, "procid", procid);
$scope.selectedProcess = $scope.processes[index];
alert(index);
希望它有效!
答案 1 :(得分:0)
将您的html代码更新为:
<select ng-model="processSelected"
ng-options="p.procname for p in processes track by p.procid">
</select>
然后在控制器中将模型值初始化为:
$scope.processSelected = $scope.processes[1];
其中$scope.processes
是一个过程对象数组。