问题1:(仅在Firefox上出现,其他浏览器的结果会有所不同)
浏览器中的每次刷新都会导致一个空选项显示为默认选项。我该如何解决这个问题?
问题2:(发生在所有浏览器中)
我想要的是让函数将其设置为默认值。但是会发生什么呢?它设置了" City"正确地为0,但它显示一个空选项作为默认选项。出现这种情况的原因是什么?
*注意:尝试使用不同的AngularJS版本,我根据AngularJS版本找到了更改
最终结果通缉:将选项更改为" ---城市---"单击按钮,列表中没有随机的空选项。
angular.module("MyApp", []).controller("MyCtrl", function($scope) {
$scope.CityChange = function() {
$scope.City = 0;
};
});

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body ng-app="MyApp" ng-controller="MyCtrl">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.7/angular.min.js"></script>
<label>City</label>
<select ng-model="City" ng-init="City='0'">
<option value="0">---City---</option>
<option value="1">City 1</option>
<option value="2">City 2</option>
</select><br><br> {{City}}
<br><br>
<button ng-click="CityChange()">Change City</button>
</body>
</html>
&#13;
答案 0 :(得分:1)
您必须使用$scope.City ="0";
。您在代码中指定了一个整数。
angular.module("MyApp", []).controller("MyCtrl", function($scope) {
$scope.CityChange = function() {
$scope.City = 0;
};
//init
function init(){
$scope.City=0
};
init();
});
<!DOCTYPE html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body ng-app="MyApp" ng-controller="MyCtrl">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.7/angular.min.js"></script>
<script src="script.js"></script>
<label>City</label>
<select ng-model="City">
<option ng-value="0" disabled="disabled">---City---</option>
<option ng-value="1">City 1</option>
<option ng-value="2">City 2</option>
</select><br><br>
{{City}}<br><br>
<button ng-click="CityChange()">Change City</button>
</body>
</html>