動態建立的Dialog預設掛載在<body>標籤下,這樣就無法使用全域的Provide和Inject。 Dialog如何掛載在div#app下或掛載在parent下?
<body>
div#app
您可以使用app.provide() 在Vue app# 上設定提供 而不是<App/> 元件。例如在入口腳本中
app.provide()
app
<App/>
import { createApp } from 'vue' import { Quasar, Dialog } from 'quasar' import App from './App.vue' createApp(App) .provide('name', value) .use(Quasar, { plugins: { Dialog, } }) .mount('#app')
然後,您將能夠在 Quasar 對話方塊子項目中使用 inject() 相同的項目,即使該對話方塊安裝在 <body> 下。
inject()
它總是安裝在 <body> (非 SSR)下或無處安裝(SSR 模式) - 不僅僅是「預設」。只需查看來源 - https://github.com/quasarframework/quasar/blob/dev/ui/src/utils/private/global-nodes.js#L6
您可以使用
app.provide()
在Vueapp
# 上設定提供 而不是<App/>
元件。例如在入口腳本中然後,您將能夠在 Quasar 對話方塊子項目中使用
inject()
相同的項目,即使該對話方塊安裝在<body>
下。它總是安裝在
#<body>
(非 SSR)下或無處安裝(SSR 模式) - 不僅僅是「預設」。只需查看來源 - https://github.com/quasarframework/quasar/blob/dev/ui/src/utils/private/global-nodes.js#L6