以下问题:
我有一个依赖于其父 DOM 的 Vue.js 组件。但是当 prop 被传递时,它 ( 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 或插槽的内容。