簡體   English   中英

AngularJs下拉菜單不發送選定的默認值

[英]AngularJs Dropdown not sending the selected default value

我在女巫中有一個AngularJs下拉菜單,我根據一些條件設置了一個選定的值。 下拉菜單按其應有的方式工作,但唯一的問題是,如果我不對其執行任何操作,如果我提交表單,則不會收到經過動態選擇的默認值。

    <!-- Payment Page -->
    <div class="form-group">
       <label class="control-label">Payment Page *</label>
       <select name="payment_page" class="form-control" ng-model="invoice_data.form_data.payment_page">
          <option ng-repeat="p_page in invoice_data.data.payment_pages" value="{{ p_page.id }}" ng-selected="(p_page.id === invoice_data.form_data.payment_page || p_page.default)">
          {{ p_page.name }}
          </option>
       </select>
   </div>
   <!-- /End Payment Page -->

在inspect元素中,下拉列表看起來不錯,該選項具有其值,依此類推,但是在提交表單后,我沒有收到所選值。 如果我更改,則選擇下拉列表並提交表單,我會收到該值,但默認情況下不會。

我不了解php。 但是我可以猜測,這是因為當您的下拉菜單保持不變時,ngModel不會獲得任何價值。 為此,您提交表單時不會獲得默認值。 解決方案

您可以在控制器或html處執行2種方式:

1)在html上使用ng-init指令將ng模型初始化為默認值。

  ng-init="invoice_data.form_data.payment_page = p_page.default ">

2)在控制器上,當您的表單提交時檢查ngModel中的空值或未選中選擇下拉列表,如果為空,則添加默認值。

感謝珍妮的時間和回復...我已經在控制器中這樣做:

angular.forEach(response.data.payment_pages, function(value, key) {
  if (value.default) {
    $scope.invoice_data.form_data.payment_page = value.id;
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM