2016-08-23 12 views
5

Mam moduł ładowania początkowego do wprowadzania danych, a po kliknięciu przycisku Wyślij chcę przenieść dane do tabeli ładowania początkowego. Ale nic się nie dzieje i nie wiem dlaczego ... To mój modalne:AngularJS: Jak przesłać dane z modemu ładowania początkowego do tabeli

<div class="modal fade-scale" id="workExpModal" name="workExpModal" 
    role="dialog"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <h4 class="modal-title">Work Experience</h4> 
      </div> 
      <div class="modal-body"> 
       <form action="" method="post" ng-submit="saveWorkExp()" 
        name="workExpForm"> 
        <div class="form-group"> 
         <label>Time:</label> <br> 
         <div class="row"> 
          <div class="col-md-6"> 
           <input type="text" class="form-control" id="timeStart" 
            placeholder="From: dd/MM/yyyy" ng-model="workExperience.From" /> 
          </div> 
          <div class="col-md-6"> 
           <input type="text" class="form-control" id="timeEnd" 
            placeholder="To: dd/MM/yyyy" ng-model="workExperience.To" /> 
          </div> 
         </div> 
         <br> <label>Title/Position:</label><br> 
         <div class="row"> 
          <div class="col-md-12"> 
           <input type="text" class="form-control" id="title" 
            placeholder="Title/Position" ng-model="workExperience.Title"> 
          </div> 
         </div> 
         <br> <label>Workplace/Company:</label><br> 
         <div class="row"> 
          <div class="col-md-12"> 
           <input type="text" class="form-control" id="workplace" 
            placeholder="Workplace/Company" 
            ng-model="workExperience.Workplace" /> 
          </div> 
         </div> 
         <br> <label>Contact:</label><br> 
         <div class="row"> 
          <div class="col-md-12"> 
           <input type="text" class="form-control" id="contact" 
            placeholder="Contact" ng-model="workExperience.Contact" /> 
          </div> 
         </div> 
        </div> 
       </form> 
      </div> 
      <div class="modal-footer"> 
       <button type="submit" class="btn btn-primary">Submit</button> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
      </div> 
     </div> 
    </div> 
</div> 

To jest mój tabeli:

<div class="container page-header table-responsive"> 
    <h3>Work Experience</h3> 
    <table class="table" id="tblWorkExp"> 
     <thead> 
      <tr> 
       <th>Time</th> 
       <th>Title/Position</th> 
       <th>Workplace/Company</th> 
       <th>Contact</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr ng-repeat="workexp in workexps"> 
       <td>{{workexp.From}} - {{workexp.To}}</td> 
       <td>{{workexp.Title}}</td> 
       <td>{{workexp.Workplace}}</td> 
       <td>{{workexp.Contact}}</td> 
      </tr> 
     </tbody> 
    </table> 
</div> 

I to jest mój funkcji:

<script type="text/javascript"> 
    /* $(document).ready(function() { 
     $(".modal").validator(); 
    }); */ 
    var app = angular.module('resumeApp', []); 
    app.controller('resumeController', function($scope) { 
     $scope.workexps = []; 
     $scope.saveWorkExp = function() { 
      $scope.workexps.push($scope.workExperience); 
      delete $scope.workExperience; 
      $('#workExpModal').modal('hide'); 
      $scope.workExpForm.$setPristine(); 
     } 
    }); 
</script> 

Czy ktoś może pomóc?

+0

Uzyskując dostęp do DOM w kontrolerze w ten sposób (gdzie nazywacie '$ ('# workExpModal') modal ('hide')') nie jest najlepszym sposobem na napisanie czystego, testowalnego kodu AngularJS. Polecam spojrzeć na użycie czegoś takiego jak [UI Bootstrap] (https://angular-ui.github.io/bootstrap/) Moduł kątowy, który dodaje usługi takie jak '$ uibModal', które pozwalają ci to zrobić o wiele łatwiej. – GregL

+0

Proszę udostępnić cały kod – Aravind

Odpowiedz

1

Wydaje się, że twój nie przekazując nowe dane w

ng-submit="saveWorkExp(workExperience)" 

użytkowania poniższy kod

<div class="modal fade-scale" id="workExpModal" name="workExpModal" 
    role="dialog"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <h4 class="modal-title">Work Experience</h4> 
      </div> 
      <div class="modal-body"> 
       <form action="" method="post" ng-submit="saveWorkExp(workExperience)" 
        name="workExpForm"> 
        <div class="form-group"> 
         <label>Time:</label> <br> 
         <div class="row"> 
          <div class="col-md-6"> 
           <input type="text" class="form-control" id="timeStart" 
            placeholder="From: dd/MM/yyyy" ng-model="workExperience.From" /> 
          </div> 
          <div class="col-md-6"> 
           <input type="text" class="form-control" id="timeEnd" 
            placeholder="To: dd/MM/yyyy" ng-model="workExperience.To" /> 
          </div> 
         </div> 
         <br> <label>Title/Position:</label><br> 
         <div class="row"> 
          <div class="col-md-12"> 
           <input type="text" class="form-control" id="title" 
            placeholder="Title/Position" ng-model="workExperience.Title"> 
          </div> 
         </div> 
         <br> <label>Workplace/Company:</label><br> 
         <div class="row"> 
          <div class="col-md-12"> 
           <input type="text" class="form-control" id="workplace" 
            placeholder="Workplace/Company" 
            ng-model="workExperience.Workplace" /> 
          </div> 
         </div> 
         <br> <label>Contact:</label><br> 
         <div class="row"> 
          <div class="col-md-12"> 
           <input type="text" class="form-control" id="contact" 
            placeholder="Contact" ng-model="workExperience.Contact" /> 
          </div> 
         </div> 
        </div> 
       </form> 
      </div> 
      <div class="modal-footer"> 
       <button type="submit" class="btn btn-primary">Submit</button> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
      </div> 
     </div> 
    </div> 
</div> 

i zmodyfikowany kontroler będzie

<script type="text/javascript"> 
    /* $(document).ready(function() { 
     $(".modal").validator(); 
    }); */ 
    var app = angular.module('resumeApp', []); 
    app.controller('resumeController', function($scope) { 
     $scope.workexps = []; 
     $scope.saveWorkExp = function(workExperience) { 
      $scope.workexps.push(workExperience); 
      delete $scope.workExperience; 
      $('#workExpModal').modal('hide'); 
      $scope.workExpForm.$setPristine(); 
     } 
    }); 
</script> 
+0

Zrobiłem to, ale nadal nic się nie dzieje po kliknięciu przycisku Submit :( – omglolgg

+0

Przykro mi, nie zadeklarowałem $ scope.workExperience = {} w kontrolerze – Aravind

+0

Przepraszam, nawet ja sprawdziłem to działa, daj mi znać, że twoja dostępność rozwiążemy w przeglądarce zespołu Czy to jest dla ciebie w porządku? – Aravind

0

dont HV kod dla ciebie, ale hv pytanie, które pomoże ci uzyskać odpowiedź:

Czy twój modal znajduje się w zasięgu kontrolera ng? Jeśli nie, to wszystkie atrybuty powiązane z kątem prostokątnym nie będą działać. Można nawet wypróbować console.log w funkcji saveWorkExp(), aby sprawdzić, czy jest wywoływana.

Powiązane problemy