แก้ไขคุณสมบัติที่แสดงค่า (Id) ที่แตกต่างจากค่าที่แสดงใน ng2-smart-table

ฉันใช้ตาราง ng2-smart ในแอป เชิงมุม 6 ของฉัน คอลัมน์ใดคอลัมน์หนึ่งต้องแสดง access_type ฉันได้รับมาจากแหล่งที่มาโดยใช้ valuePrepareFunction ตัวอย่าง. access_id=1,access_type=Type1. ดังนั้นเมื่อแสดงรายการข้อมูลนี้ในตาราง มันแสดง access_type อย่างถูกต้อง แต่เมื่อฉันแก้ไขแถวนั้นโดยใช้ปุ่มแก้ไข ตาราง ng2-smart ระบุว่ามันแสดง access_id ไม่ใช่ access_type ฉันจำเป็นต้องทำการเปลี่ยนแปลงใด ๆ เพื่อแสดงข้อมูลเดียวกันในโหมดแก้ไขเป็นรายการที่แสดงหรือไม่? ต่อไปนี้เป็นรหัสของฉันสำหรับคอลัมน์นั้น -

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

ขอบคุณล่วงหน้า.


person nik    schedule 24.09.2019    source แหล่งที่มา


คำตอบ (1)


ใช่ คุณต้องมีรายการแยกต่างหากสำหรับตัวแก้ไขเช่นเดียวกับการกรอง

หากคุณใช้กล่องแบบเลื่อนลงเพื่อแก้ไข นั่นจะเหมาะสมอย่างยิ่งเนื่องจากสามารถใช้ access_type เป็นชื่อ และใช้ access_id เป็นค่าได้

ฉันคิดได้แค่ว่าสิ่งนี้จะช่วยคุณได้จากการคาดเดาว่าโครงสร้างข้อมูลของคุณเป็นอย่างไร คุณช่วยยกตัวอย่างว่ารายการอาร์เรย์รายการใดรายการหนึ่งมีลักษณะเป็นอย่างไร เรามีวัตถุที่ซ้อนกันหรือไม่?

นี่คือโค้ดเล็กๆ น้อยๆ ที่ช่วยได้:

    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