从控制器中为“<select ng-options>”选择“<option>”值
Selecting `<option>` value from controller for `<select ng-options>`
<select
class="form-control input-md
availabiltyDatesInput pull-left"
name="statusModel"
autocomplete="off"
id="statusModel"
ng-options="alertStatus.value as alertStatus.text for alertStatus in alertStatuses"
ng-model="statusModel">
</select>
我有一个 Select 选项。我需要预先填充此 select 的值。
我正在尝试在控制器中设置 ng-model:
angular.module("app.alerts")
.controller("alertsCtrl", function ($scope, CarmateCommonApiSvc, $uibModal) {
getLookupsData();
var alertStatuses = [];
function getLookupsData() {
alertStatuses = [];
CarmateCommonApiSvc.getLookups().then(function (res) {
if (res.code != 0) return;
_.each(res.data.allLookups, function (item, index, arr) {
if(item.name == 'AlertStatus'){
alertStatuses.push(item);
}
});
$scope.alertStatuses = alertStatuses;
$scope.statusModel = alertStatuses[0];
})
}
});
但是没用。
我是 AngularJs
的新人
您需要使用如下值设置 ng-model:
$scope.statusModel = alertStatuses[0].value;
有关更多信息和示例,请查看此处:link
也许你应该先检查数组是否有任何项目:
if(alertStatuses.length > 0){
$scope.statusModel = alertStatuses[0].value;
}
statusModel
应仅设置为单个值而不是完整对象 alertStatuses[0]
。所以,像这样更新您的代码:
$scope.statusModel = alertStatuses[0].value || 0;
你实际上可以滥用 ng-init 指令。
<select
class="form-control input-md availabiltyDatesInput pull-left"
name="statusModel"
autocomplete="off"
id="statusModel"
ng-options="alertStatus.value as alertStatus.text for alertStatus in alertStatuses"
ng-model="statusModel"
ng-init="statusModel = alertStatuses[0]"
>
</select>
<select
class="form-control input-md
availabiltyDatesInput pull-left"
name="statusModel"
autocomplete="off"
id="statusModel"
ng-options="alertStatus.value as alertStatus.text for alertStatus in alertStatuses"
ng-model="statusModel">
</select>
我有一个 Select 选项。我需要预先填充此 select 的值。
我正在尝试在控制器中设置 ng-model:
angular.module("app.alerts")
.controller("alertsCtrl", function ($scope, CarmateCommonApiSvc, $uibModal) {
getLookupsData();
var alertStatuses = [];
function getLookupsData() {
alertStatuses = [];
CarmateCommonApiSvc.getLookups().then(function (res) {
if (res.code != 0) return;
_.each(res.data.allLookups, function (item, index, arr) {
if(item.name == 'AlertStatus'){
alertStatuses.push(item);
}
});
$scope.alertStatuses = alertStatuses;
$scope.statusModel = alertStatuses[0];
})
}
});
但是没用。 我是 AngularJs
的新人您需要使用如下值设置 ng-model:
$scope.statusModel = alertStatuses[0].value;
有关更多信息和示例,请查看此处:link
也许你应该先检查数组是否有任何项目:
if(alertStatuses.length > 0){
$scope.statusModel = alertStatuses[0].value;
}
statusModel
应仅设置为单个值而不是完整对象 alertStatuses[0]
。所以,像这样更新您的代码:
$scope.statusModel = alertStatuses[0].value || 0;
你实际上可以滥用 ng-init 指令。
<select
class="form-control input-md availabiltyDatesInput pull-left"
name="statusModel"
autocomplete="off"
id="statusModel"
ng-options="alertStatus.value as alertStatus.text for alertStatus in alertStatuses"
ng-model="statusModel"
ng-init="statusModel = alertStatuses[0]"
>
</select>