gpt4 book ai didi

javascript - AngularJS 在有效的 ajax 数据到达之前设置虚拟选项元素

转载 作者:行者123 更新时间:2023-11-29 19:32:14 25 4
gpt4 key购买 nike

据我所知,AngularJS 在使用 ng-model 指令时会设置默认值。我只需要使用 $http.get 检索到的有效选项来填充 select 元素。问题是,在所有有效元素之上,我有一个虚拟元素,其值为 ?如何摆脱它?

<select  id="environment" name="environment_name" ng-model="environment"  ng-options="e.name for e in ENVIRONMENTS" required>
</select>

$scope.ENVIRONMENTS = [];
$http.get("/getEnvironments").success(function(data){
data.forEach(function(el){
$scope.ENVIRONMENTS.push(el);
});
}).error(function (data) {
$scope.showErrorMsg("Cannot get ENVIRONMENTS.");
});
$scope.environment = $scope.ENVIRONMENTS[0];

最佳答案

您可以向 $scope.ENVIRONMENTS 数组添加临时值,即:

 $scope.ENVIRONMENTS = [{name:"Please wait"}];

从后台获取数据后删除

$scope.ENVIRONMENTS.shift()

请看下面的演示

var app = angular.module('app', []);

app.controller('homeCtrl', function($scope, $http) {


$scope.ENVIRONMENTS = [{
name: "Please wait"
}];
$http.get("/getEnvironments").then(function(data) {
$scope.ENVIRONMENTS.shift()
data.forEach(function(el) {

$scope.ENVIRONMENTS.push(el);
})

//set default value after you get data from backend
$scope.environment = $scope.ENVIRONMENTS[0];

}, function(data) {

$scope.showErrorMsg("Cannot get ENVIRONMENTS.");
});
$scope.environment = $scope.ENVIRONMENTS[0];

$scope.showErrorMsg = function(msg) {

console.log(msg);

}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="homeCtrl">

<select id="environment" name="environment_name" ng-model="environment" ng-options="e.name for e in ENVIRONMENTS" required>
</select>
</div>
</div>

关于javascript - AngularJS 在有效的 ajax 数据到达之前设置虚拟选项元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26844845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com