Разница с использованием использования Select as в ng-options - PullRequest
0 голосов
/ 03 января 2019

Поле выбора в IE вызывает проблему при открытии в первый раз при использовании с identity as identity.identityName for identity in identityProofList track by identity.identityId или ng-repeat но при использовании без identity as он работает нормально и не может видеть никакой разницы в функциональности окна выбора.

<select name="identityProof" ng-model="identityProof" ng-change="changeProofOfIdentity(identityProof)" ng-options="identity.identityName for identity in identityProofList track by identity.identityId"  id="identityProofList" >

Где identityProofList - массив объектов, имеющих свойства identityName и identityId.

  1. В чем разница между обоими?

  2. Почему ng-repeat вызывает проблемы с IE11.

1 Ответ

0 голосов
/ 04 января 2019

В чем разница между обоими?

Вы имеете в виду разницу между 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>

Результат вот так .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...