Следующая проблема:Как получить доступ к содержимому слота в другом дочернем компоненте
У меня есть компонент Vue.js, который опирается на DOM своего родителя. Но в тот момент, когда пропущена передача, она (this.$el
) не определена, вероятно, потому, что она еще не установлена.
файл шаблона вю моего компонента выглядит следующим образом:
<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>
Я думал ждать родительского компонента, чтобы быть но таким образом я не могу сохранить шаблон, как указано выше, потому что он всегда будет пытаться получить доступ к методу (или переменной) мгновенно.
Как это решить?
Edit:
<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>
Вот шаблон родительского компонента. Единственное, что мне действительно нужно, это div .article
или содержимое слота.
Почему вы проходя 'это $ el' в пропеллер.? – Saurabh
@saurabh Поскольку мне нужно получить доступ к элементу DOM, чтобы выполнить execute querySelector. Как бы вы это сделали? – 22samuelk
Я попытаюсь передать переменную vue там, вы можете добавить свой HTML родительский DOM, а также указать, что именно вы хотите получить. – Saurabh