首頁  >  問答  >  主體

以Vuetify的v-data-table為例,實作條件性隱藏列的功能

<p>我有一個帶有<code>v-data-table</code>和<code>actions</code>列的表格,我想只在用戶有某些權限時顯示這一列。我正在使用mixin來檢查權限。 </p> <p>我嘗試了以下方法,但沒有成功:</p> <pre class="brush:html;toolbar:false;"><template v-slot:[`header.actions`]="{ header }" v-if="hasPermission('update center ')"> {{ header.text }} </template> </pre> <p>這是我在元件檔中使用mixin的方式:</p> <pre class="brush:js;toolbar:false;">import BaseLayout from "../layouts/Base/Base.vue"; import hasPermission from "../../../mixins/hasPermissions"; export default { mixins: [hasPermission], … } </pre> <p>結果:[1]: https://i.stack.imgur.com/aVSgJ.png</p>
P粉775723722P粉775723722393 天前483

全部回覆(1)我來回復

  • P粉681400307

    P粉6814003072023-08-26 09:25:31

    header.actions 是一個用來覆寫 actions 欄位標題渲染的插槽。如果你不傳遞它(當條件為 false 時),Vuetify 將渲染預設的表示。

    如果你想要有條件地隱藏(不渲染)某些列,請將你的表頭定義為 computed

    computed: {
      headers() {
        const headers = [
          // 其他表头定义
        ]
        if(this.hasPermission('update center')) {
          headers.push({
            // actions 表头定义
          })
        }
    
        return headers
      }
    }
    

    回覆
    0
  • 取消回覆