【问题标题】:Vue component toggleVue 组件切换
【发布时间】:2016-08-20 21:40:59
【问题描述】:

我是 Vue 的新手,正在开发一个常见问题列表组件,该组件可以在单击问题时切换答案。 我不确定如何使用 Vue 组件/模板切换类。

另外,在 data(faq_list) 中使用 show 属性是一种很好的方法吗?

代码如下。

<div id="app">
    <faqs :list="faq_list" :active.sync="active"></faqs>
    <pre> {{$data| json}} </pre>
</div>

<template id="faq-template">
    <ol>
        <li v-for="list_item in list">
            <div class="question"> {{list_item.question}} </div>
            <div  v-if="toggleActive" @click='toggleActive(list_item)'>
                {{list_item.answer}}
            </div>
            <strong @click="removeFaq(list_item.answer)">x</strong>
        </li>
    </ol>
</template>

Vue.component('faqs', {
        props: ['list', 'active'],

        template: '#faq-template',

        methods: {
            removeFaq: function(list_item){
                this.list.$remove(list_item);
            },

            toggleActive: function(list_item) {
                console.log(list_item.show);
              list_item.show = !list_item.show;
            }

        }
    });

    new Vue({
        el: '#app',

        data: {

            active: {},

            'faq_list' : [
                { question: 'q01', answer: 'q1',  show: false},
                { question: 'q02', answer: 'a2',  show: false},
                { question: 'q03', answer: 'a3',  show: false},
                { question: 'q04', answer: 'a4',  show: false},
                { question: 'q05', answer: 'a5',  show: false}
            ]
        }
    });

【问题讨论】:

    标签: javascript vue.js


    【解决方案1】:
    <li v-for="list_item in list">
        <div class="question" @click='list_item.show = !list_item.show'> {{list_item.question}} </div>
        <div v-if="list_item.show">
            {{list_item.answer}}
        </div>
        <strong @click="removeFaq(list_item)">x</strong>
    </li>
    
    1. 你有v-if="toggleActive",但它应该是v-if="list_item.show"

    2. 我将点击移至问题 div,以便您可以显示/隐藏该 div,否则一旦隐藏,您将无法点击它

    3. 简化的@click='list_item.show = !list_item.show' 虽然你的也可以:)

    4. 向删除函数发送了错误的参数(您在需要 list_item 时发送了 list_item.answer

    【讨论】:

      猜你喜欢
      • 2019-05-02
      • 2020-09-20
      • 1970-01-01
      • 2018-07-07
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 2019-01-26
      相关资源
      最近更新 更多