2017-05-04 1 views
0

Hallo Ich habe dynamisch Formularfelder mit einer Auswahloption hinzufügen. Ich möchte die zuvor ausgewählten Optionen im neu hinzugefügten Feld deaktivieren. meine html ist wie dieserAngularjs dynamisches Formularfeld mit der Option Option deaktiviert bereits ausgewählte Option

<div ng-repeat="exam_student in exam_students track by $index"> 

    <select 
    ng-model="exam_student.student_id" 
    options="students" 
    ng-options="student.id as student.sname for student in students"> 
    </select> 
    <button type="button" ng-click="removeStudent($index)">-</button> 

</div> 

<button type="button" ng-click="addStudent()">+</button> 

und meine js ist

$scope.exam_students = [{}]; 
$scope.addStudent = function(){ 
    $scope.exam_students.push({}); 
} 

$scope.removeStudent = function(index){ 
    $scope.exam_students.splice(index,1); 
} 

ist die Plunker plnkr.co/edit/VOZrqIos54IcunBTAwat

danken Ihnen für Ihre jede Hilfe und Anregungen.

+0

Code auf Plunker filtert pls –

+0

Bitte https überprüfen: // plnkr. co/edit/VOZrqIos54IcunBTAwat – sanu

+0

pls machen es klar, was ist Ihre Anforderung –

Antwort

0

diesem Geige

https://jsfiddle.net/athulnair/c3Lorjrx/

$scope.filteredstudents =angular.copy($scope.students) 
    $scope.addStudent = function(name){ 
     $scope.exam_students.push({"id":name,"sname":name}); 
    debugger; 
    var index = $scope.filteredstudents.findIndex(item => item.id === name); 
    $scope.filteredstudents.splice(index, 1); 

    } 

    $scope.removeStudent = function(name){ 
    var examstudentindex = $scope.exam_students.findIndex(item => item.id === name); 
     $scope.exam_students.splice(examstudentindex,1); 
    var index = $scope.students.findIndex(item => item.id === name); 
    $scope.filteredstudents.push($scope.students[index]); 
    } 

sonst Versuchen Sie $scope.filterStudents(); so nennen kann das Array von Auswahl

$scope.filterStudents = function(){ 
     $scope.filteredstudents = $scope.students.filter(function(el) { 
     return !$scope.exam_students.map(i=>(i.id)).includes(el.id); 
     }); 
    } 
+0

ja etwas wie das aber Was passiert, wenn Benutzer die Option – sanu

+0

ändern Ich denke, Sie können die Option im Array deaktivieren, so dass Sie sie nur entfernen können. –