【发布时间】:2020-07-01 06:40:31
【问题描述】:
我正在 Svelte 中开发一个用于学习目的的小型 ToDo 应用程序(我是 Svelte 的新手)。
我在尝试向 New Todo 表单添加验证错误时卡住了。
在我拥有的<script> 标签内
var errors = [];
function addTodo(){
//Empty todo object
let newTodo = {};
//Set new todo object's properties (id, title, completed)
if (todos.length == 0) {
newTodo.id = 1;
} else {
newTodo.id = todos[0].id + 1;
}
if(document.querySelector('#new_todo').value.length < 3){
errors.push('Please introduce at least 3 characters');
} else {
newTodo.title = document.querySelector('#new_todo').value;
}
newTodo.completed = false;
//Add new todo
if (errors === undefined || errors.length == 0) {
todos.unshift(newTodo);
}
todos = todos;
//Empty field when done adding todo
document.querySelector('#new_todo').value = '';
}
在视图中:
{#if errors.length > 0}
<div class="m-2 alert alert-danger">
{#each errors as error}
<p>{error}</p>
{/each}
</div>
{/if}
<div class="input-group p-2" id="addForm">
<input type="text" class="form-control" id="new_todo" placeholder="New Todo">
<div class="input-group-append">
<button on:click="{addTodo}" class="btn btn-sm btn-success">Add</button>
</div>
</div>
由于我找不到的原因,错误验证消息没有出现,控制台显示Uncaught (in promise): if_block0.p is not a function。
查看 REPL here。
我的错误在哪里?
【问题讨论】:
标签: javascript svelte svelte-3