javascript - 为什么我编辑发票时看不到我的发票项目?

标签 javascript laravel vue.js vuejs2

我正在使用 Laravel 5.7 & VueJs 2.5.* ...

我正在使用单个 Bootstrap 模型来创建和编辑我的 TicketInvoice & 它是 TicketInvocieItems,但是当我点击编辑时,Bootstrap 模型打开并且我看到数据填写TicketInvoice但看不到TicketInvoiceItems的数据。我也不知道如何填充 TicketInvoiceItems 的数据。

我的 ticketInvoiceItems 输入字段:

<tbody>
  <tr v-for="(ticketInvoiceItem, key) in form.ticketInvoiceItems" :key="key">
    <!--Passenger Name-->
    <td>
      <input v-model="ticketInvoiceItem.passenger_name" size="40" type="text" name="passenger_name" class="table-control form-control" :class="{ 'is-invalid': form.errors.has('passenger_name') }">
      <has-error :form="form" field="passenger_name"></has-error>
    </td>
    <!--Ticket No.-->
    <td>
      <input v-model="ticketInvoiceItem.ticket_no" size="24" type="text" name="ticket_no" class="table-control form-control" :class="{ 'is-invalid': form.errors.has('ticket_no') }">
      <has-error :form="form" field="ticket_no"></has-error>
    </td>
  </tr>
  <!----------- ANY MANY OTHER FIELDS DOWN BELOW ----------->

我的 HTML 编辑按钮:

<a href="#" @click="editModel(ticketInvoice)">
  <i class="fas fa-user-edit fa-lg text-orange"></i>
</a>

我的 VueJs editModel() 代码:

<script>
  /*==============EDIT INVOICE CODE==============*/
  editModel(ticketInvoice) {
    this.editmode = true;
    this.form.reset();
    this.form.clear();
    $("#addNewTicketInvoice").modal("show");
    this.form.fill(ticketInvoice);
  },
  /*==============END EDIT INVOICE CODE==============*/
  </script>

我在 VueJs

中的 data()
<script>
  export default {
    data() {
      return {
        editmode: true,
        ticketInvoices: {},
        vendors: null,
        form: new Form({
          id: "",
          vendor_id: "",
          ticket_invoice_no: "",
          ticket_invoice_date: "",
          ticket_invoice_fares_total: "",
          ticket_invoice_grand_total: "",

          ticketInvoiceItems: [{
            id: "",
            ticket_invoice_id: "",
            passenger_name: "",
            ticket_no: "",
            departure_date: "",
            fares: "",
            sub_total: 0
          }]
        })
      };
    },
    </script>

更好理解的图像 enter image description here

最佳答案

在您的 editModel 方法中添加这些行:

   $("#addNewTicketInvoice").modal("show");
   this.form.fill(ticketInvoice);
   this.form.ticketInvoiceItems=ticketInvoice.ticket_invoice_items;

this.form.ticketInvoiceItems 将是一个循环遍历您应该使用的值的对象

   Object.values(this.form.ticketInvoiceItems).forEach(....

关于javascript - 为什么我编辑发票时看不到我的发票项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52998040/

相关文章:

javascript - Vue CLI 生成空正文,错误为 : Cannot find element: #app after migration vuecli 2>3

ajax - Auth::check() 在 ajax 调用中失败(有时)

laravel - 在 Laravel 中使用 Eloquent 传递数据

vue.js - 如何在没有 monorepo 的情况下在多个 vue 应用程序中组织代码(组件)共享

javascript - 使用 Vue CLI 项目设置时如何将 $emit 与 Vue.js 一起使用?

javascript - 如何从 Protractor 中的随机菜单中获取元素?

javascript - Angular 对 Chrome 中的事件执行函数两次

Javascript/JQuery 如何循环遍历所有具有 aria-invalid 属性的 html 元素

mysql - 使用 __construct 更新模型以限制返回结果

javascript - 如何创建一个方法来映射 JSON 对象以设置 vue.js 中数据对象的属性?