我是Quasar和Vue的新手。有人可以向我解释如何解决我的任务吗?
简要介绍任务:
(1)我有一个q-tree元素,它表示屏幕左侧的文件夹结构[ref.1]
(2)这是文件夹结构[ref.2]
(3)当用户单击此文件夹结构中的任何元素时,他将在右侧看到一个新组件,其中的所有子元素在网格布局中都被单击。
这就是我现在拥有的。
[ref.1] treeComponent.vue
<template>
<q-tree
:nodes="documents"
@click="getId"
node-key="id" >
</q-tree>
</template>
<script>
var documents = require('./documents')
module.exports = {
data: function () {
return {
selectedDoc: x,
documents: documents
}
},
methods: {
getId: function () {
const x = this.getNodeByKey('id')
consol.log(x)
}
}
}
</script>
[ref.2] documents.js
module.exports = [
{
id: '1',
label: 'My Documents',
icon: 'folder',
children: [
{
id: '01',
label: 'Dir 1',
children: [
{ id: '0001', label: 'Doc 1'},
{ id: '0002', label: 'Doc 2'}
]
},
{
id: '02',
label: 'Dir 2',
children: [
{ id: '0003', label: 'Doc 3'},
{ id: '0004', label: 'Doc 4'}
]
},
{
id: '103',
label: 'Dir 3',
children: [
{ id: '0005', label: 'Doc 5'},
{ id: '0006', label: 'Doc 6'},
{ id: '0007', label: 'Doc 7'}
]
}
]
}
]
答案 0 :(得分:0)
您需要用键替换id。此操作之后为每个节点添加此处理程序
presentationContext
然后在方法中添加此方法
handler: (node) => this.onclick(node)
这将显示垂直结点的ID
答案 1 :(得分:0)
因此,主要问题与对Quasar框架的了解不够充分有关。 这是我对这个问题的回答:
<template>
<button v-on:click = "showNodeSelected">showClickedNode</button>
<q-tree
:nodes = "documents"
:selected.sync = "selected"
node-key="id"
/>
</template>
<script>
var documents = require('./documents')
module.exports = {
data: function () {
return {
selected: null,
documents: documents
}
},
methods: {
showNodeSelected: function () {
console.log(this.selected)
}
}
}
</script>