반응형
delete method vue의 모든 값 삭제
내가 원하는 것은 클릭된 항목만 삭제하는 것이다.
ToDoList 컴포넌트:
템플릿:
<ul class="list-group">
<todo v-for="(todo,i) in todo" :key="i" :todoString="todo.todoString" :completed="todo.completed"
@on-delete="del(todo)" />
</ul>
스크립트:
data() {
return {
todo: [
{ todoString: "make videos Angular", completed: true },
{ todoString: "make videos React", completed: false },
{ todoString: "make videos Vue", completed: true },
{ todoString: "make videos Javascript", completed: false },
],
};
},
del(deltodo) {
this.todo = this.todo.filter(todos => {
todos.todoString !== deltodo.todoString;
console.log(this.todo.length)
});
console.log(this.todo.length)
},
ToDo Component:
템플릿:
<li class="d-flex align-items-center list-group-item">
<button class="btn border-0 text-left flex-grow-1">{{todoString}}</button>
<form action="" class="flex-grow-1">
<input type="text" class="form-control">
</form>
<button class="btn btn-outline-primary">Edit</button>
<button key="" @click="$emit('on-delete')" class="btn btn-outline-danger">delete</button>
</li>
스크립트:
props:{
todoString:String,
completed:Boolean
},
문제는 내가 하나의 아이템을 삭제하면 모든 아이템이 삭제된다는 것입니다.
인덱스를 다음에 건네주는 것으로 시작합니다.del오브젝트 전체가 아니라
@on-delete="del(i)"
그 다음에del를 사용하여 구현될 수 있습니다.splice:
del(i) {
// remove 1 element at index i
this.todo.splice(i, 1);
}
사용하고 싶은 경우filter콜백에서 돌아와야 합니다.
this.todo = this.todo.filter(todos => {
return todos.todoString !== deltodo.todoString
});
v-for에서는 단일 요소의 이름을 어레이와 동일하게 지정했는데, 이것이 문제일 수 있습니다.이것을 시험해 보세요.
<ul class="list-group">
<todo v-for="(t,i) in todo" :key="i" :todoString="t.todoString" :completed="t.completed"
@on-delete="del(t)" />
</ul>
필터 기능에도 문제가 있어 아무것도 반환하지 않습니다.이 조작은 유효합니다.
del(deltodo) {
this.todo = this.todo.filter(todos => {
console.log(this.todo.length);
return todos.todoString !== deltodo.todoString;
});
console.log(this.todo.length)
},
언급URL : https://stackoverflow.com/questions/64982383/delete-method-delete-all-the-values-in-vue
반응형
'source' 카테고리의 다른 글
| C의 printf 형식 문자열에 %c와 %s가 모두 있는 이유는 무엇입니까? (0) | 2022.08.24 |
|---|---|
| C++11은 C99로 지정된 이니셜라이저 목록을 지원하지 않는 이유는 무엇입니까? (0) | 2022.08.24 |
| vue js html에서 시간에 따라 "닫힘" 또는 "열림"을 표시하려면 어떻게 해야 합니까? (0) | 2022.08.24 |
| 파이어베이스를 만들려고 시도하고 있습니다.auth().current 사용자 약속 (0) | 2022.08.24 |
| Android/Java에서의 JSON 어레이 반복 (0) | 2022.08.24 |