В настоящее время я работаю с Vue v2.xx У меня есть массив:
sectionTitles = ['Technology', 'Data', 'Poverty and Research', ...]
, и у меня есть jobsData
, который выглядит так:
[{'title': 'Software Engineer', mainTag: 'Data', ...}...]
Я хочу отобразить <li>
в <ul>
, когда sectionTitle
соответствует job.mainTag
.
Я читал в Vue документах, что вы не должны объединять v-if
с v-for
, поэтому я создал вычисляемый метод, чтобы иметь возможность фильтровать задания. Вот что я сделал до сих пор:
window.onload = function () {
var app = new Vue({
delimiters: ['${', '}'],
el: '#app',
data: {
jobs: jobsData,
sectionTitles: ['Data','Poverty Research Unit', 'Technology']
},
computed: {
matchingTitles: function (sectionTitle) {
return this.jobs.filter(function (job, sectionTitle) {
job.mainTag === sectionTitle;
})
}
}
})
}
<div id="app">
<template v-for="title in sectionTitles">
<h4 class="h3">{{ title }}</h4>
<ul class="list-none p-0 color-mid-background" id="jobs-list">
<li class="py-1 px-2" v-for="job in matchingTitles(title)">
<a :href="`${job.url}`">
${job.title}
</a>
</li>
</ul>
</template>
</div>
Таким образом, я хочу отображать <li>
, только когда sectionTitle
(например, Data
) соответствует job.mainTag
. Как я могу go добиться этого в Vue?