【问题标题】:I can't figure out how to make a modal 'settings button' component我不知道如何制作模态“设置按钮”组件
【发布时间】:2020-04-16 11:50:50
【问题描述】:

我正在使用 Quasar VueJS,并希望在我的导航栏上创建一个按钮,以打开一个弹出对话框设置面板。我将使用此设置面板来处理动态主题等内容,但这有点离题了。

我目前〜严重〜努力弄清楚如何做到这一点。

“布局/MainLayout.vue”

<template>
        <q-btn
          unelevated
          icon="settings"
          label="Settings"
          color="primary"
          v-on:click="SetterUpper"
        />
</template>

<script>
import SetterUpper from "components/SetterUpper";

export default {
  name: "MainLayout",
  Component: {
    SetterUpper
  },
};
</script>

“组件/SetterUpper.vue”

<template>
  <q-dialog v-model="SetterUpper" persistent>
    <q-card>
      <q-card-section class="row items-center">
        <q-avatar icon="settings" color="primary" text-color="white" />
        <span class="q-ml-sm">Placeholder</span>
      </q-card-section>

      <q-card-actions align="right">
        <q-btn flat label="Cancel" color="primary" v-close-popup />
        <q-btn flat label="Save" color="primary" v-close-popup />
      </q-card-actions>
    </q-card>
  </q-dialog>
</template>

<script>
export default {
  name: "SetterUpper",
};
</script>

【问题讨论】:

    标签: javascript vue.js vue-component quasar-framework


    【解决方案1】:

    将您的 q-dialog 移动到您的父组件。这样您就不必传递任何道具或发出事件来确保多个组件知道您的 v-modal 变量的状态。

    像这样 MainLayout.vue

    <template>
      <q-layout view="lHh Lpr lFf">
        <q-dialog v-model="dialogEnabled" persistent>
          <SetterUpper />
        </q-dialog>
        <q-btn
          unelevated
          icon="settings"
          label="Settings"
          color="primary"
          v-on:click="dialogEnabled = true"
        />
      </q-layout>
    </template>
    
    <script>
    import SetterUpper from 'components/SetterUpper'
    export default {
      name: 'MainLayout',
      components: {
        SetterUpper
      },
      data() {
        return {
          dialogEnabled: false
        }
      }
    }
    </script>
    
    

    SetterUpper.vue

    <template>
      <q-card>
        <q-card-section class="row items-center">
          <q-avatar icon="settings" color="primary" text-color="white"/>
          <span class="q-ml-sm">Placeholder</span>
        </q-card-section>
    
        <q-card-actions align="right">
          <q-btn flat label="Cancel" color="primary" v-close-popup/>
          <q-btn flat label="Save" color="primary" v-close-popup/>
        </q-card-actions>
      </q-card>
    </template>
    
    <script>
    export default {
      name: 'SetterUpper'
    }
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-12
      • 2023-03-21
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多