mam*_*mcx 6 javascript vue.js quasar-framework
在http://quasar-framework.org/中,我有几个共享相同布局的屏幕,例如产品和客户列表。
但是,我不知道如何将数据从页面传递到其布局。例如,布局有一个标题,我希望根据显示的页面来更改它:
//Routes:
{
path: '/orders',
component: () => import('layouts/list'),
children: [
{ name: 'pickCustomer', path: '/customer', component: () => import('pages/CustomersList') },
{ name: 'pickProducts', path: '/products/:customer_id', component: () => import('pages/AddProductsList') },
{ name: 'addProduct', path: '/addproduct/:order_id/:product_id', component: () => import('pages/AddProductsList') },
{ name: 'confirmOrder', path: '/confirm/:order_id', component: () => import('pages/AddProductsList') }
]
}
//list.vue
<template>
<q-layout>
<q-layout-header>
<q-toolbar>
<q-btn
flat
round
dense
icon="chevron_left"
@click="leftDrawer = !leftDrawer"
/>
<q-toolbar-title>
{{title}}
</q-toolbar-title>
<q-btn flat round dense icon="save" label="Add" />
</q-toolbar>
<q-toolbar>
<q-toolbar-title>
<q-search v-model="search" @input="change" inverted color="none" />
</q-toolbar-title>
</q-toolbar>
</q-layout-header> </q-layout>
</template>
<script>
export default {
// name: 'LayoutName',
}
</script>
//Customers.vue
<template>
</template>
<script>
import CustomersRows from '../statics/json/customers.json'
export default {
data () {
return {
title: 'Customers', <--HOW TO PASS THIS?
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
小智 7
您需要在路线中使用元。在您的布局中,使用:
<q-toolbar-title
v-if="$route.meta.title"
class="text-center"
>
{{ $route.meta.title }}
</q-toolbar-title>
<q-toolbar-title
v-else
class="text-center"
>
Any default title you may have
</q-toolbar-title>
Run Code Online (Sandbox Code Playgroud)
或者简单地:
<q-toolbar-title class="text-center">
{{ $route.meta.title || 'Any default title you may have' }}
</q-toolbar-title>
Run Code Online (Sandbox Code Playgroud)
这可以在您的路线中设置,如下所示:
[
{ path: '/', meta: { title: 'Dashboard' } },
{ path: '/route-1', meta: { title: 'Route 1' } },
]
Run Code Online (Sandbox Code Playgroud)