AngularJS在有效的ajax数据到达之前设置伪选项元素
AngularJS setting dummy option element before valid ajax data arrives
据我所知,AngularJS在使用ng-model
指令时设置默认值。我需要用$http.get
检索到的有效选项来填充select元素。问题是,在所有有效元素之上,我有一个伪元素vith值?
如何摆脱它
<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中编写对对象的重复访问以设置元素样式的简写
- 一个页面上有多个Ace编辑器,没有预先设置元素
- Android浏览器设置元素大小太小
- 是否可以使用flexbox显示模型设置元素的滚动位置
- 在Javascript ES6 Map中获取或设置元素
- 如何使用javascript设置元素旋转和动态观察的动画
- 使用输入变量设置元素的值
- 如何设置元素的z索引?JQuery、Javascript、CSS、HTML
- Javascript链接-试图设置元素值-奇怪的行为chrome&安卓
- DOM:如何根据迭代器值设置元素宽度并在mouseover上调用函数
- 如何获取变量's设置元素时的文字值's onclick处理程序
- 如何设置元素的占位符文本 我无法编辑 HTML 并且 ID 正在更改
- 设置元素动画jquery
- 缩放时设置元素的重力
- 选择一个 CSS 选择器来动态设置元素的样式 ::before
- 使用循环和闭包设置元素的内部 HTML
- 使用 Javascript 获取和设置元素的宽度
- 设置元素 id = javascript 函数
- 铬:设置元素高度的脚本是什么
- 取消设置元素可见性,更改 innerHTML,然后转换回来