2016-05-09 10 views
1

Ich entwickle eine App mit MEAN Stack. Ich kann Formularelemente dynamisch hinzufügen, aber keine Daten in mein ng-Modell einfügen. Wenn ich ng-model="something.something" gebe, dann nimmt jedes dynamisch hinzugefügte Formularelement dieselben Daten an. Ich möchte Daten als Objekt in einem Array aufnehmen. Ich würde jede Antwort sehr begrüßen.Daten aus dynamisch hinzugefügtem Formular in eckigen erhalten

Hier ist mein HTML-Code:

<div layout-gt-sm="row" ng-repeat="(key,aca) in vm.academic"> 
       <md-input-container class="md-block" flex-gt-sm> 
        <label>Degree</label> 
        <input name="degree" ng-model="vm.academic[key].degree"> 
       </md-input-container> 
       <md-input-container class="md-block" flex-gt-sm> 
        <label>University/Board</label> 
        <input name="university" ng-model="vm.academic[key].university"> 
       </md-input-container> 
       <md-input-container class="md-block" flex-gt-sm> 
        <label>Percentage/Grade</label> 
        <input name="grade" ng-model="vm.academic[key].grade"> 
       </md-input-container> 
      </div> 
      <div layout="row" layout-align-gt-sm="end"> 
       <md-button class="btn1" aria-label="add button" ng-click="vm.add();"> 
        <md-icon md-svg-icon="plus"></md-icon> 
        <md-tooltip md-direction="top"> 
         Add more field 
        </md-tooltip> 
       </md-button> 
      </div> 

und mein js Code ist

vm.academic = [{}]; 
    vm.add = add; 

    function add() { 
    console.log('button clicked'); 
    vm.academic.push({ 
     degree:'', 
     university:'', 
     grade:'' 
    }); 
}; 

Wie kann ich ein anderes ng-Modell für verschiedene Felder erhalten die Daten in der Datenbank zu speichern?

+0

Finden Sie [hier Demo] (http://jsfiddle.net/austinnoronha/RkykR/), um Details darüber zu erhalten, wie man über iteriert arrray und bind den Wert in form mit ng-repeat. – TechnoCrat

Antwort

1

Dies ist der HTML-Code, den Sie Sie

<form name="FormName" novalidate> 
     <div layout-gt-sm="row" ng-repeat="aca in vm.academic"> 
      <md-input-container class="md-block" flex-gt-sm=""> 
       <label>Name</label> 
       <input type="text" ng-model="aca.name" > 
      </md-input-container> 
      <md-input-container class="md-block" flex-gt-sm=""> 
       <label for="email">Email Id</label> 
       <input type="email" ng-model="aca.email"/> 
      </md-input-container> 
     </div> 
    </form> 

Und Sie Controller vm.academic = [{}]; initialisieren und rufen hinzufügen und Methoden entfernen wie folgt erhalten in

vm.addNewAcademic = function(){ 
    vm.academic.push({}); 
}; 
vm.removeAcademic = function() { 
    var num = vm.academic.length-1; 
    if (num !== 0) { 
     vm.academic.pop(); 
    } 
}; 

Sie werden im HTML-Format würde helfen Ausgabeergebnis als [{'name':'a','email':'bb'},{'name':'c','email':'dd'}]

+0

Hallo Bruder, es macht mir wieder Probleme, Daten an den Server zu senden. Wie kann ich ng-Modell Daten senden. Ich habe lange Form, die ng-model = "vm.recruit.formElement" haben. wie man Daten zusammen mit vm.recruit sendet – jsgeek

+0

vm.recruit muss ein Wörterbuchobjekt sein, das direkt zum Server sendet. Was ist Schwierigkeit darin? – Rakeschand

+0

Nun, ich bin in der Lage, Daten an den Node-Server zu senden. aber ich benutze Mungo und Mongodb für die Datenspeicherung. Ich bin nicht in der Lage, Formularelemente in einem Array von Schemas zu speichern. Hier ist mein Server-Code: – jsgeek