2016-10-04 3 views
0

Hallo all Ich habe diese Multiple-Select-Drop-Down. Ich wollte, dass es angularjs über JSON-Objekte durchläuft. Sinus bin ich neu in eckigen, wie überlasse ich sie. Ich möchte auch SkillId und SkillName als Werte haben.Wie übergebe ich JSON-Objekte durch Mehrfachauswahl mit angularjs

Dies ist die HTML-Formular

<div class="form-group"> 
    <label class="col-lg-2 col-md-3 control-label">Skills</label> 
    <div class="col-lg-10 col-md-9"> 
     <select id="emp-skills" class="form-control" name="skills" multiple="multiple" ng-model="skills.skillList"> 
      <option></option> 
      <option ng-repeat="skill in skills" value="{{skill.SkillId}}">{{skill.SkillName}}</option> 
     </select> 
    </div> 
</div> 

Dies ist die controller.js

$scope.register = function (isValid) { 
if (isValid) { 

      var empDetails = { 
       'employeedetails': { 
        Fname: $scope.registDetails.Fname, 
        Lname: $scope.registDetails.Lname, 
        Date_of_Birth: $scope.registDetails.Date_of_Birth, 
        Nic: $scope.registDetails.Nic, 
        Gender: $scope.registDetails.Gender, 
        Email: $scope.registDetails.Email, 
        Mobile_no: $scope.registDetails.Mobile_no, 
        Designation: $scope.registDetails.Designation, 
        Date_of_join: $scope.registDetails.Date_of_join, 
        Department_name: $scope.registDetails.Department_name 
       }, 
       'qualification': $scope.records, 
       'address': { 
        Addr1: $scope.registDetails.Addr1, 
        Addr2: $scope.registDetails.Addr2, 
        Addr3: $scope.registDetails.Addr3, 
        Addr4: $scope.registDetails.Addr4 
       }, 
       'skills':$scope.skillList 
      }; 

      console.log(empDetails); 

       UserService.Register(empDetails, function (res) { 
       EMPID = (res.data); 
       console.log(res.data); 


     } 

Und das JSON-Format für Fähigkeiten

$scope.skills = [ 
    { 
     "SkillId":1, 
     "SkillName":"C#" 
    }, 
    { 
     "SkillId":2, 
     "SkillName":"Angular" 
    }, 
    { 
     "SkillId":3, 
     "SkillName":"web development" 
    } 
] 

Hilfe würde geschätzt ich gewesen bin Stundenlang kämpfen. :(

+0

können wir die volle Steuerung und die json bitte? –

+0

Sie nur Geschick Namen in Ihrem Fall – Chetan

+0

Verwendung ng erhalten -Optionen statt. – Chetan

Antwort

1

Bitte versuchen this- verwendet ng-Optionen

angular.module('app',[]).controller('ntCntr',function($scope){ 
 
$scope.skills = [{"SkillId":1,"SkillName":"C#"},{"SkillId":2,"SkillName":"Angular"},{"SkillId":3,"SkillName":"web development"}] 
 

 
$scope.selectionChanged= function(values){console.clear();console.log(values)} 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script> 
 
<div class="form-group" ng-app="app"> 
 
    <label class="col-lg-2 col-md-3 control-label">Skills</label> 
 
    <div class="col-lg-10 col-md-9" ng-controller="ntCntr"> 
 
     <select id="emp-skills" class="form-control" name="skills" multiple="multiple" ng-options="skill as skill.SkillName for skill in skills track by skill.SkillId " ng-change="selectionChanged(skills.skillList)" ng-model="skills.skillList"></select> 
 
     {{skills.skillList}} 
 
    </div>

+0

Wie erhalte ich den Wert für 'var empDetails = {'skills': <>}' im Controller? –

+0

wenn Sie es wünschen, senden Sie Knopf oder irgendein anderes Ereignis? – Chetan

+0

wenn '$ scope.register() {}' was eine Funktion in einer Schaltfläche ist ausgelöst wird alles in den 'var empDetails' sollte übergeben an 'Userservice.Register (empDetails) {}' –

Verwandte Themen