0

我正在用 nuxt.js、vue 和 storyblok 制作一个导航组件。在这个导航中,我有一些项目。我正在从 storyblok API 中获取我的导航项目。当 API 中的“突出显示”属性等于 true 或 false时,我想以不同的方式设置某些导航项目的样式。

我的问题是我不完全知道该怎么做。这就是我目前所拥有的。

我的导航组件中的 div:

<div  v-if="items" class="main-nav">
                <nav>
                    <ul>
                        <li v-bind:class="{ highlighted: item.highlighted === isHighlighted, not_highlighted: item.highlighted === isNotHighlighted}" v-editable="items" :key="index" v-for="(item, index) in items">
                            <LinkType class="nav-link" :link="item.link" :linkText="item.name">{{ item.name }}</LinkType>
                        </li>
                    </ul>
                </nav>
</div>

这就是我检索数据的方式:

data() {
        return {
            items: this.$store.state.settings.main_nav ? this.$store.state.settings.main_nav : [],

            isHighlighted: true,
            isNotHighlighted: false


        }
    }

每当我尝试 console.log item.hightlighted它都会返回一个未定义的错误。我将不胜感激。

4

1 回答 1

1

尝试如下 =>

<div  v-if="items" class="main-nav">
    <nav>
        <ul>
            <li v-bind:class="item.highlighted === isHighlighted ? 'highlighted' : 'not_highlighted'" v-editable="items" :key="index" v-for="(item, index) in items">
                <LinkType class="nav-link" :link="item.link" :linkText="item.name">{{ item.name }}</LinkType>
            </li>
        </ul>
    </nav>
</div>

您还可以从数据中删除 isNotHighlighted: false。

于 2019-02-18T09:16:56.817 回答