Time for action – building a data model
Before we can begin implementing data binding, we need a data model to bind to. If you recall, we are only saving the task names to localStorage
. Our data model is simply an array of strings. Now that each task has multiple details fields we will need something a little more substantial to hold all of that data. You can find the source code for this section in Chapter 3\example3.2
.
Let's start by defining a task object for our data model. We will create a new file, taskList.js
to put it in:
function Task(name) { this.name = name; this.id = Task.nextTaskId++; this.created = new Date(); this.priority = Task.priorities.normal; this.status = Task.statuses.notStarted; this.pctComplete = 0; this.startDate = null; this.dueDate = null; } // Define some "static variables" on the Task object Task.nextTaskId = 1; Task.priorities = { none: 0, low: 1, normal: 2, high: 3 }; Task.statuses = { none: 0, notStarted...