diff --git a/lib/TodosModel.js b/lib/TodosModel.js index ab8d115..72001a8 100644 --- a/lib/TodosModel.js +++ b/lib/TodosModel.js @@ -1,10 +1,31 @@ "use strict"; /*global WinJS: false */ +var ko = require("knockoutify"); + +function Todo(name, hasCompleted) { + var that = this; + name = ko.observable(name); + hasCompleted = ko.observable(hasCompleted); + + Object.defineProperties(that, { + name: { + get: function () { return name(); }, + set: function (val) { name(val); }, + enumerable: true + }, + hasCompleted: { + get: function () { return hasCompleted(); }, + set: function (val) { hasCompleted(val) }, + enumerable: true + } + }); +} + var sampleTodos = [ - { name: "Destroy Enemies.", hasCompleted: false }, - { name: "Make Friends.", hasCompleted: false }, - { name: "Conquer The World.", hasCompleted: false } + new Todo("Destroy Enemies.", false), + new Todo("Make Friends.", false), + new Todo("Conquer The World.", false) ]; // I envision the serialization happening by someone who listens to events triggered by this model? @@ -19,7 +40,7 @@ module.exports = function TodosModel(initialItems) { that.dataSource = bindingList.dataSource; that.add = function (name) { - bindingList.push({ name: name }); + bindingList.push(new Todo(name, false)); }; that.delete = function (key) {