Bootstrapモデルに配置されたフォームがあり、ユーザーが送信ボタンをクリックすると、フォームデータをプッシュしますTaskList
。
しかし、ユーザーがフォームの送信ボタンをクリックすると、フォームデータはプッシュされず、 Linkや ngSubmitTaskList
のような別のページにリダイレクトされます。
タイプスクリプトファイルの「TaskList」プッシュコードを削除すると、フォーム ngSubmit
は正常に機能し、フォームデータを取得でき、どちらの場合もエラーは発生しません。
TaskList
フォームからデータを取得し、配列 ob オブジェクトにプッシュする方法。
TS:
export class TodoListComponent {
TaskList : Task[];
name:string;
onAddtask(form : NgForm){
console.log(form);
this.TaskList.push({
id:this.TaskList.length+1,
title:form.value.taskname,
description:form.value.description,
due:form.value.duedate,
done:false
});
}
}
interface Task {
id: number;
title: string;
description?: string,
due?: string,
done: boolean
}
HTML:
<div class="well well-sm">
<h1>Todos</h1>
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#addTaskModel">+ Add</button>
<!-- Modal -->
<div class="modal fade" id="addTaskModel" role="dialog">
<div class="modal-dialog modal-md">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body">
<form (ngSubmit)="onAddtask(addtask.value)" #addtask="ngForm">
<div class="form-group">
<label for="taskname">Task Name:</label>
<input type="text" class="form-control" id="taskname" name="taskname" ngModel>
</div>
<div class="form-group">
<label for="description">Task Description</label>
<textarea col="6" rows="6" class="form-control" name="description" ngModel></textarea>
</div>
<div class="form-group">
<label for="duedate">Due Date</label>
<input class="form-control" type="date" name="duedate" ngModel>
</div>
<button type="reset" class="btn btn-danger">Clear</button>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
</div>
<!-- Model End Here-->
</div>