繁体   English   中英

如何在vue js中将父母的子女传递给孩子

[英]how to pass refrence from parent to child in vue js

我有这个代码

HTML

<div class="col-xs-4">
    <h3 class="text-center">Incomplete task</h3>
        <div class="well" style="max-height: 300px;overflow: auto;">
            <ul id="check-list-box" class="list-group checked-list-box">

                    <li v-for="task in incompleteTasks" class="list-group-item">
                        <input type="checkbox" name="" @click="addToDone">
                        {{task.description}}
                    </li>
              <!-- <li v-for="task in incompleteTasks" v-text="task.description" class="list-group-item">
              <input type="checkbox" class="" /></li> -->
            </ul>
            <br />
        </div>
</div>

我的JS看起来像这样

let data = {
                heading:'Task List',
                tasks :[
                        {description: 'GO to store', completed : false},
                        {description: 'SignUp Page', completed :false },
                        {description: 'Create New team', completed : false},
                        {description: 'Add Entity', completed : false},
                        {description: 'Add WorkFlow', completed : false}
                    ]
            };

new Vue({

  el: '#root',

  data: data,

  methods: {
      addToDone() {

        this.completed = true;
        console.log(this);
      },
  },

  computed: {

      heading() {

        return this.heading;
      },

      incompleteTasks() {

        return this.tasks.filter(task => !task.completed);
      },

      completeTasks() {

        return this.tasks.filter(task => task.completed);
      }
  }

})

我想将复选框的onclick切换为该li对象的完成属性为True

我怎样才能做到这一点 ?

谢谢

您应该在方法中传递要修改的task ,如下所示:

<li v-for="task in incompleteTasks" class="list-group-item">
   <input type="checkbox" name="" @click="addToDone(task)">
                    {{task.description}}
</li>

然后在方法中将其标记为完成,例如:

methods: {
    addToDone(task) {
      task.completed = true;
      console.log(task);
    },
},

如果要使用索引编辑项目,请尝试这种方式

<li v-for="(task, index) in incompleteTasks" class="list-group-item">
   <input type="checkbox" name="" @click="addToDone(index)">
     {{task.description}}
 </li>

在方法中:

addToDone(index) {
  this.$set(this.tasks[index], 'completed', true);
},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM