2017-04-19 3 views
0

Ich habe die Anforderung, mehrere Dropdown-Listen dynamisch zu generieren, abhängig von den Daten in der Sammlung von mongodb.Dynamische Generierung von ng-Modellen für mehrere Dropdown-Listen

{ 
    "_id" : ObjectId("58f4fdd4c9fc145b279a1cc9"), 
    "_class" : "com.zwayam.common.rg.mongodb.MasterDataFields", 
    "entityType" : "Company", 
    "editableFields" : { 
     "industry" : "mappingFields.industry", 
     "group" : "mappingFields.group" 
    } 
} 

In der obigen json Objekt Industrie bezieht sich auf die Spaltennamen in der Tabelle und mappingFields.industry bezieht sich auf seinen Wert, die aus der Master-Liste dh kommen.

{ 
    "_id" : ObjectId("58edd50e44ae5483c2eb2f34"), 
    "_class" : "zwayam.common.rg.mongodb.MasterDataMap", 
    "fieldName" : "masterData", 
    "mappingFields" : { 
     "function" : [ 
      "Chartered Accountant/CPA", 
      "Chartered Accountant", 
      "Accounting", 
      "Tax", 
      "Company Secretary", 
      "Audit", 
      "Direct Sales Agent/Insurance Agents", 
      "Hotel/Restaurant", 
      "Content/Editors/Journalists", 
      "Finance", 
      "Consulting/Strategy/Corporate Planning" 
     ], 
     "industry" : [ 
      "Biotechnology/Pharmaceutical/Medicine", 
      "CRM/CallCentres/BPO/ITES/MedTrans", 
      "Educational/Training", 
      "Recruitment/Placement Agencies", 
      "Engineering/Projects", 
      "Entertainment/Media", 
      "Financial Services/Stockbroking" 
     ], 
     "group" : [ 
      "group 1", 
      "group 2", 
      "group 3", 
      "group 4", 
      "group 5", 
      "group 6", 
      "group 7" 
     ], 
     "scale" : [ 
      "scale 1", 
      "scale 2", 
      "scale 3", 
      "scale 4", 
      "scale 5", 
      "scale 6", 
      "scale 7" 
     ], 
     "type" : [ 
      "type 1", 
      "type 2", 
      "type 3", 
      "type 4", 
      "type 5", 
      "type 6", 
      "type 7" 
     ] 
    } 
} 

Ich bin in der Lage, die Liste zu füllen, und ich habe getan, dass aus dem unten stehenden Code

 <div class="col-sm-12 ats-display editCompany" 
      ng-repeat="(key,value) in dataList"> 
      <label for="workflowDefination" 
       class="control-label workflowLabel"> 
       {{key}} 
      </label> 
      <select ng-model="CompanyFields.value" ng-click="getfield();" 
       id="{{key}}" class="form-control" 
       ng-options="CompanyFields for CompanyFields in dataValueList.{{value}}" > 
       <option value="" label="Select the value"></option> 
      </select> 
      {{CompanyFields}} 
      <div class="col-sm-12" style="height: 17px;"></div> 
     </div> 

Aber ich weiß nicht, wie für dieses Dropdown-Menü ng-Modell zu setzen und den Wert erhalten vom Benutzer aus jedem Dropdown ausgewählt. Kann mir jemand sagen, wie man das dynamische ng-Modell für die obige Anforderung einstellt?

Antwort

0

löste ich mein Problem durch ng-model ="CompanyObj[key]" Einstellung wo CompanyObj

<div class="col-sm-12 ats-display editCompany" ng-repeat="(key,value) in dataList"> 
    <label for="workflowDefination" class="control-label workflowLabel">{{key}}</label> 
    <select ng-model="CompanyObj[key]" ng-click="getfield(CompanyFields[value]);" id="{{key}}" class="form-control" ng-options="CompanyFields for CompanyFields in dataValueList.{{value}}"> 
     <option value="" label="Select the value"></option> 
    </select> 
    {{CompanyFields}} 
    <div class="col-sm-12" style="height: 17px;"> 

    </div> 

</div> 
0

ein JSON-Objekt ist, können wir $eval verwenden den Ausdruck in Objekt zu analysieren. Plunker

JS:

<div ng-repeat = "(key,value) in parentdata.editableFields" > 
     {{key}} 
    <select id="{{key}}" ng-model="selectedQuery" ng-options="key as value for (key,value) in $eval('jsondata.'+value)"> 
       <option value="" label="Select the value"></option> 
    </select> 
    </div> 
Verwandte Themen