formations/javascript/base/exercices/vanilla-todos/vanilla-todos.js

58 lines
1.2 KiB
JavaScript
Raw Permalink Normal View History

2015-04-01 11:17:02 +02:00
(function(VT, window) {
"use strict";
// Déclaration des variables
var _rootEl; // Élement racine de notre application
var _todos = []; // Notre liste de todos
var document = window.document; // Alias
2015-04-01 11:17:02 +02:00
/***************
* API publique
***************/
2015-04-01 11:17:02 +02:00
/*
* "Monte" l'application VanillaTodo sur l'élément du DOM
* correspondant au sélecteur CSS donné
*/
VT.mount = function(selector) {
_rootEl = document.querySelector(selector);
2015-04-01 11:17:02 +02:00
if(!_rootEl) {
throw new Error('Invalid selector "'+selector+'" !');
}
_todos = _loadTodos();
// A vous de compléter !
2015-04-01 11:17:02 +02:00
};
/**************
* API privée
**************/
2015-04-01 11:17:02 +02:00
/*
* Charge les tâches depuis le localStorage
*
* Retourne les tâches sous la forme d'un tableau d'objets
*/
function _loadTodos() {
var todosStr = window.localStorage.getItem('vanillaTodos.todos');
return JSON.parse(todosStr || '[]');
}
/*
* Sauvegarde le tableau de tâches donné dans le localStorage
*
* Ne retourne rien
*/
function _saveTodos(todos) {
var todosStr = JSON.stringify(todos);
window.localStorage.setItem('vanillaTodos.todos', todosStr);
}
2015-04-01 11:17:02 +02:00
}(this.VanillaTodos = this.VanillaTodos || {}, window));