2015-05-12 100 views
2

我在Angular setup中有一個表單,如下所示。在AngularJS中用一個Submit All按鈕提交多個表單

用戶可以進行更改並一次提交一個,它按預期方式工作,但我想添加一個「提交全部」,每次提交一個項目,就好像用戶正在按提交按鈕每。我有點難倒了最好的方式來做到這一點。截至目前,由於API約束,我無法將它們作爲批次提交。我也想讓jQuery避開這個等式。

我的第一個想法是創建一個新的對象,其中包含每個項目的信息,然後循環並提交。我不確定如何在控制器中進行設置。

<div class="table-responsive"> 
    <table class="table table-striped"> 
     <thead> 
     <th>Name</th> 
     <th></th> 
     <th>Age</th> 
     <th>Kids</th> 
     <th></th> 
     </thead> 
     <tbody> 
     <tr class="pending-item animate-repeat" 
      data-ng-repeat="user in Users" 
      data-ng-form="userForm" 
      role="form" 
      data-ng-submit="submitUser(user, userDetails)" 
      novalidate> 
      <td class="img-container"> 
      <img data-ng-src="{{user['image']['url']}}" 
       alt="{{user['image']['alt'] || ' '}}" 
       class="img-responsive" > 
      </td> 
      <td class="col-xs-6"> 
      <div class="user-info"> 
       <p class="user-name"> 
       {{user['name']}} 
       </p> 
      </div> 
      </td> 
      <td> 
      <div class="input-group input-group-sm"> 
       <span class="input-group-addon">Age</span> 
       <input type="number" min="0" 
        name="age" 
        class="form-control age" 
        data-ng-init="userDetails.age = user['age']" 
        data-ng-model="userDetails.age" 
        required> 
      </div> 
      </td> 
      <td> 
      <div class="input-group input-group-sm"> 
       <input type="number" min="0" step="1" 
        name="kids" 
        class="form-control kids" 
        data-ng-disabled="user['kids'] === true" 
        data-ng-pattern="/^\d+$/" 
        data-ng-init="userDetails.kidsCount = user['kids']['quantity']" 
        data-ng-model="userDetails.kidsCount" 
        required> 
       <div class="input-group-addon"># of kids</div> 
      </div> 
      </td> 
      <td> 
      <div class="btn-group btn-col"> 
       <button type="submit" 
         class="btn btn-success btn-sm" 
         data-ng-disabled="userForm.$invalid || userDetails.working" 
         data-ng-click="submitUser(user, userDetails)"> 
        Submit 
       </span> 
       </button> 
      </div> 
      </td> 
     </tr> 
     </tbody> 
    </table> 
    <button ng-click="submitAllUsers()">Submit All Users</button> 
    </div> 
+1

它看起來像你缺少一些代碼? '​​'上面和下面的東西沒有附加到元素上。 – DrCord

+0

順便說一句,如果您的按鈕位於表單標籤內,則不需要ng-click和ng-submit。我建議只需用ng-submit調用submitItem() –

+0

你是否試圖將這兩個表單封裝在父表單中,並實際使用兩個提交? ?爲每個子窗體和一個全球性父 – quirimmo

回答

0

是,創建你的控制器中的對象,說$scope.formData={},然後將它綁定使用ng-modeldata-ng-model你的元素,然後按一下按鈕傳遞這個對象在你的控制器,並做必要的東西。

+0

我會怎樣綁定「數據-NG-模型=」 itemDetails.price」到$ scope.formData $ {scope.formData價格 :itemDetails.price } 類似的東西? –

+0

不,你不必將它綁定到一些其他對象..使用formData或itemDetails作爲對象,然後在你的點擊事件上傳遞該對象.... – Ritesh

+0

我更新了我的示例以提供更多詳細信息。 所以我會通過爲userDetails與submitAllUsers。 <按鈕NG點擊=「submitAllUsers(爲userDetails)」>提交所有用戶 –

相關問題