当前位置: 代码迷 >> JavaScript >> Vue JS-如何基于单击事件进行文本的条件显示
  详细解决方案

Vue JS-如何基于单击事件进行文本的条件显示

热度:15   发布时间:2023-06-05 15:58:04.0

我刚刚开始学习Vue,因为我想从PHP转到Javascript。

我有一个我无法解决的问题,希望您能为我提供帮助。

我有任务清单。 如果完成任务,我想更新状态。 如果单击“设置为完成”链接,该任务将从未完成任务移至已完成任务列表。

您可以在屏幕截图上看到,已完成任务中的“ 购买牛奶” 我想做的是在 所有任务”列表上的“购买牛奶”旁边添加“完成”文本或选中图标。

这是我的代码:

 < script > var app = new Vue({ el: '#root', data: { message: 'Hello world!', tasks: [{ description: 'Go to the store', completed: false }, { description: 'Buy milk', completed: false }, { description: 'Feed the dog', completed: false }, { description: 'Cook something', completed: false } ] }, methods: { setToCompleted() { this.completed = true; }, }, computed: { incompleteTasks() { return this.tasks.filter(task => !task.completed); }, completedTasks() { return this.tasks.filter(task => task.completed); } } }); < /script> 
 <div id="root"> <h3>All tasks</h3> <ul> <li v-for="task in tasks" v-text="task.description == true ? 'Completed' : 'Not completed'"></li> </ul> <h3>Incomplete Tasks</h3> <ul> <li v-for="task in incompleteTasks">{{ task.description }}&nbsp|&nbsp<a href="#" @click="task.completed = true">Set as completed</a></li> </ul> <h3>Completed Tasks</h3> <ul> <li v-for="task in completedTasks" v-text="task.description"></li> </ul> </div> 

我试过的是在v-text指令上添加条件。 但它始终显示未完成。 您能指导我为什么它没有改变吗? 多谢您的协助。

谢谢。

编辑======

这段代码解决了我的问题:谢谢@tomrlh

 <div id="root"> <h3>All tasks</h3> <li v-for="task in tasks"> {{ task.description }} {{ task.completed ? 'completed' : '' }} </li> <h3>Incomplete Tasks</h3> <ul> <li v-for="task in incompleteTasks">{{ task.description }}&nbsp|&nbsp<a href="#" @click="task.completed = true">Set as completed</a></li> </ul> <h3>Completed Tasks</h3> <ul> <li v-for="task in completedTasks" v-text="task.description"></li> </ul> </div> 

如何在“ 所有任务”展览中检查任务是否完成,然后有条件地显示“已完成”消息:

<h3>All tasks</h3>
<li v-for="task in tasks">
    {{ task.description }} {{ task.completed ? ' | completed' }}
</li>
  相关解决方案