以下问题:如何访问另一个子组件中插槽的内容
我有一个Vue.js组件,它依赖于其父级的DOM。但是道具通过的那一刻(this.$el
)未定义,可能是因为它尚未安装。
我的组件VUE模板文件看起来是这样的:
<template>
<md-card>
<md-card-content>
<ol>
<li v-for="item in headings(content)">
<a :href="`#${item.id}`">{{ item.name }}</a>
</li>
</ol>
</md-card-content>
</md-card>
</template>
<script>
export default {
props: ['content'],
methods: {
headings(content) {
// DOM element is used
// At this moment, `content` is undefined
},
},
};
</script>
使用上面的一个包含这段代码的组件:
<article-index :content="this.$el"></article-index>
我想等待父组件是但这样我似乎无法像上面那样保留模板,因为它总是会立即尝试访问方法(或变量)。
我该如何解决这个问题?
编辑:
<template>
<div class="content">
<div class="left"><article-index :content="this.$el"></article-index></div>
<div class="article"><slot></slot></div>
<div class="right"><slot name="aside"></slot></div>
</div>
</template>
这里的父组件的模板。我唯一需要的是.article
div或插槽的内容。
为什么你传递'这个$ el'的道具? – Saurabh
@saurabh因为我需要访问DOM元素才能执行querySelector。你会怎么做? – 22samuelk
我会尝试在那里传递一个vue变量,您是否也可以添加您的父DOM的HTML,并指出您想要访问的内容。 – Saurabh