Fitur edit menunjukkan nilai (Id) berbeda dari nilai yang tercantum di ng2-smart-table

Saya telah menggunakan tabel ng2-smart di aplikasi sudut 6 saya. Salah satu kolomnya harus menampilkan access_type, saya mendapatkannya dari sumber menggunakan valuePrepareFunction. Contoh. access_id=1,access_type=Jenis1. Jadi ketika mencantumkan data ini dalam tabel, ia menampilkan access_type dengan benar tetapi ketika saya mengedit baris itu menggunakan tombol edit, tabel ng2-smart menyediakan ia menampilkan access_id dan bukan access_type. Apakah saya perlu melakukan perubahan untuk menampilkan data yang sama dalam mode edit sebagai daftar tampilan? Berikut adalah kode saya untuk kolom itu-

access_id: {
        title: 'Access Type',
        editable: false,
        filter: {
          type: 'list',
          config: {
            list: [],
          },
        },
        valuePrepareFunction: (cell, row) => {
          return row.access_type;
        },
      }

Terima kasih sebelumnya.


person nik    schedule 24.09.2019    source sumber


Jawaban (1)


Ya, Anda memerlukan daftar terpisah untuk editor seperti yang Anda lakukan untuk memfilter.

Jika Anda menggunakan kotak dropdown untuk mengedit, itu ideal karena dapat menggunakan access_type sebagai judul, dan access_id sebagai nilainya.

Saya hanya bisa berasumsi ini akan membantu Anda berdasarkan tebakan seperti apa struktur data Anda. Bisakah Anda memberi saya contoh seperti apa salah satu item array itu? Apakah kita memiliki objek bersarang?

Berikut ini sedikit kode untuk membantu:

    type: {
      title: 'Type',
      valuePrepareFunction: type => {
        return type.abbr;
      },
      filter: {
        type: 'list',
        config: {
          selectText: 'ALL',
          list: this.typeList
        }
      },
      editor: {
        type: 'list',
        config: {
          selectText: 'Select ...',
          // list: [{value: 'access_idvalue', title: 'access_type'}]
          // use the line above to hard code your list, or the line below
          // if you are loading the list dynamically
          list: this.typeList
        }
      },
      filterFunction(type?: any, search?: string): boolean {
        if (type._id === search) {
          return true;
        } else {
          return false;
        }
      }
    },
person mcadio    schedule 01.10.2019