Del*_*ain 2 javascript arrays sorting vue.js vuejs2
我想在调用特定方法时更改任务的状态。但是问题是我无法获取数组特定项的索引来更改其状态。这是我的HTML:
<div class="main" id="my-vue-app">
<ul>
<li v-for="task in completeTask">
{{ task.description }} <button @click="markIncomplete">Mark as Incomplete</button>
</li>
</ul>
<ul>
<li v-for="task in incompleteTask">
{{ task.description }} <button @click="markComplete">Mark as Complete</button>
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的Vue:
<script>
new Vue(
{
el: '#my-vue-app',
data:
{
tasks: [
{description:'go to market', status: true},
{description:'buy book', status: true},
{description:'eat biriani', status: true},
{description:'walk half kilo', status: false},
{description:'eat icecream', status: false},
{description:'return to home', status: false}
]
},
computed:
{
incompleteTask()
{
return this.tasks.filter(task => ! task.status);
},
completeTask()
{
return this.tasks.filter(task => task.status);
}
},
methods:
{
markComplete()
{
return this.task.status = true;
},
markIncomplete()
{
return this.task.status = false;
}
}
}
)
</script>
Run Code Online (Sandbox Code Playgroud)
我需要利用markComplete()和,markIncomplete()但是问题是我找不到方法来获取当前元素的索引以更改其状态。
您可以通过在处声明第二个参数v-for来获取索引:
<li v-for="(task, index) in incompleteTask">
{{ task.description }} <button @click="markComplete(index)">Mark as Complete</button>
</li>
Run Code Online (Sandbox Code Playgroud)
<li v-for="(task, index) in incompleteTask">
{{ task.description }} <button @click="markComplete(index)">Mark as Complete</button>
</li>
Run Code Online (Sandbox Code Playgroud)
但是,也许更简单的替代方法是简单地传递taskas参数:
<li v-for="task in incompleteTask">
{{ task.description }} <button @click="markComplete(task)">Mark as Complete</button>
</li>
Run Code Online (Sandbox Code Playgroud)
methods:
{
markComplete(index)
{
return this.tasks[index].status = true;
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15017 次 |
| 最近记录: |