В чем разница между обоими?
Вы имеете в виду разницу между ng-repeat и ng-options ?
Разница между их использованием для создания DropdownList заключается в том, что:
Выпадающие списки, сделанные с помощью ng-options, позволяют выбранному значению быть объектом, а выпадающие списки, сделанные из ng-repeat, должны быть строкой.
Подробнее, отметьте поля AngularJS Select * .
Почему ng-repeat вызывает проблемы с IE11, также связано с использованием.
В соответствии с вашими кодами я создаю пример, используя следующий код, он хорошо работает в моем браузере IE (11.17134.1.0), вы можете обратиться к нему.
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<p>Select a identity:</p>
<select ng-model="selectedidentity">
<option ng-repeat="x in identityProofList " value="{{x.identityId}}">{{x.identityName}}</option>
</select>
<h1>You selected: {{selectedidentity}}</h1><br />
<select name="identityProof" ng-model="identityProof" ng-change="changeProofOfIdentity(identityProof)"
ng-options="identity as identity.identityName for identity in identityProofList track by identity.identityId"
id="identityProofList"></select>
<h1>You selected: {{selectedvalue}}</h1>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function ($scope) {
$scope.identityProofList = [
{ identityId: "1001", identityName: "Admin" },
{ identityId: "1002", identityName: "User" },
{ identityId: "1003", identityName: "Customer" }
];
$scope.selectedvalue = "";
$scope.changeProofOfIdentity = function (identity) {
$scope.selectedvalue = identity.identityName;
}
});
</script>
Результат вот так .