我有一个加载简单选择的函数,如:
function cargarCatalogo() {
apiService.get("../../api/Catalogo/GetCatalogoPadre/" + $scope.Catalogo + "/",
null,
function(res) {
$scope.Catalogos = res.data;
$scope.selected = $scope.Catalogos[0];
inicial
$scope.filtro($scope.selected);
},
errorCatalogo);
}
正如您所看到的,我选择第一个选项作为默认选项$scope.selected = $scope.Catalogos[0];
问题是我不希望选择该选项我希望选择数据库值,因为我正在使用编辑视图。
我的表是这样的:
+--------+----------+---------+
| ID | Nombre | PadreID |
+--------+----------+---------+
| 1 | KENWORTH | 0 |
| 2 | VOLVO | 0 |
| 3 | T6000 | 2 |
| 4 | T800 | 1 |
+--------+----------+---------+
如果我编辑寄存器T6000,我会在select中收到KENWORTH
和VOLVO
,但PadreID等于2,所以我想要一个默认选项是2?我需要改变什么选择值?此致
HTML:
<select class="form-control" ng-hide="Catalogos.length==0" ng-change="filtro(selected)" ng-model="selected" ng-options="item.Nombre for item in Catalogos "></select>
$scope.selected = $scope.Catalogos[0];
结果:
答案 0 :(得分:0)
如果您拥有所需选择项的ID,则可以使用ng-options="item.Codigo as item.Nombre for item in Catalogos ">
ng-model
的{{1}}将select
保留Codigo
,用户将查看显示Nombre
<select class="form-control" ng-hide="Catalogos.length==0" ng-change="filtro(selected)" ng-model="selected.Codigo" ng-options="item.Codigo as item.Nombre for item in Catalogos"></select>
答案 1 :(得分:0)
我个人觉得语法ng-options
难以阅读和理解,我总是首选使用ng-repeat
,ng-bind
,ng-value
和{{1}实现类似的结果。以下是使用替代方法实现此目的的方法:
ng-selected
我不确定您是如何设置选择的选项,但要使用<select class="form-control" ng-hide="Catalogos.length==0" ng-change="filtro(selected)" ng-model="selected">
<option ng-repeat="item in Catalogos" ng-bind="item.Nombre" ng-value="item.Codigo" ng-selected="item.ID === object.ID"></option>
</select>
,您需要当前ng-selected
中的任何属性才能评估为true与另一个值相比。
ngSelected docs:https://docs.angularjs.org/api/ng/directive/ngSelected