【发布时间】:2019-03-23 21:22:33
【问题描述】:
我正在努力提高自己在 JavaScript OOP 方面的水平,并且我也在学习 vue.js。我正在建立一个简单的任务列表来自学,除了删除任务功能之外,我已经完成了大部分工作。我最初只是使用 .remove() 选项,但它没有更新我前端的 v-if 和 v-else 语句,即使使用另一个函数检查数组的长度也是如此。所以,我决定尝试拼接我的数组,但我有点迷茫,因为它返回未定义。由于数组中的每个元素都是一个对象,因此我确定这是我尝试调用该值的方式,但我不太确定该怎么做。
这里是 HTML:
<div class="form-group">
<input type="text" id='task-entry' class='px-2' @keyup.enter="addTask">
<a href="#" class='btn btn-info' id='task-button' @click="addTask">Add Task</a>
</div> <!-- form-group -->
<hr class='hr my-5 bg-dark'>
<div class="task-list py-3 bg-white mx-auto w-75">
<ul v-if='taskList.length > 0' class='mb-0 px-2'>
<li v-for="tasks in taskList" class='text-dark p-3 task-item text-left clearfix'>
<div class='task-name float-left'>
<span>{{ tasks.task }}</span>
</div>
<a href="#" class="btn btn-danger remove-task float-right" @click='removeTask'>Remove Task</a>
</li>
</ul>
<div v-else>
You currently have no tasks.
</div>
这里是 JavaScript:
new Vue({
el: '#app',
data: {
title: 'To Do List',
taskList: [],
showError: false
},
methods: {
addTask: function () {
var task = document.getElementById('task-entry');
if (task.value !== '' && task.value !== ' ') {
this.error(1);
this.taskList.push({
task: task.value
});
task.value = '';
} else {
this.error(0);
}
},
removeTask: function (e) {
if(e.target.classList.contains('remove-task')) {
var targetElement = e.target.parentElement;
var test = targetElement.querySelector('span').innerText;
console.log(test);
console.log(this.taskList[{task: test}]);
} else {
e.preventDefault;
}
},
error: function (value) {
if (value === 0) {
this.showError = true;
} else {
this.showError = false;
}
}
}
});
【问题讨论】:
标签: javascript arrays oop vue.js