04: Flush State
Render each todo item as same format from array of todos in state by x-each directive.
The child nodes of x-each element are displayed repeatedly for the length of the todos array.
- Add array of todos into x-state.
- Add x-each directive in parent element of todo item HTML tag to be repeated.
- Remove todo item sample elements confirmimg the design.
<body> <section class="todoapp" x-state="{ todos: [ { title: 'Todo Title (Active)', completed: false }, { title: 'Todo Title (Completed)', completed: true }, ], }" x-controller _><!DOCTYPE html>
<html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1" > <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/todomvc-app-css@2.1.2/index.css" > <script src="https://x-ninja.org/assets/js/o_o.js"></script> <script src="https://x-ninja.org/assets/js/flux._.js"></script> <title>TODOs @x-ninja</title> </head><section class="main"> <input id="toggle-all" class="toggle-all" type="checkbox"> <label for="toggle-all">Mark all as complete</label> <ul class="todo-list" x-each="todos" > <li class="todo"> <div class="view"> <input class="toggle" type="checkbox"> <label>Todo Title (Active)</label> <button class="destroy"></button> </div> <input class="edit"> </li> <li class="todo completed"> <div class="view"> <input class="toggle" type="checkbox"> <label>Todo Title (Completed)</label> <button class="destroy"></button> </div> <input class="edit"> </li> <li class="todo editing"> <div class="view"> <input class="toggle" type="checkbox"> <label>Todo Title (Editing)</label> <button class="destroy"></button> </div> <input class="edit"> </li> </ul> </section><header class="header">
<h1>todos</h1> <input class="new-todo" autofocus autocomplete="off" placeholder="What needs to be done?" > </header></section> </body> </html><footer class="footer">
<span class="todo-count"> <strong>3</strong> items left </span> <ul class="filters"> <li><a href="#/all" class="selected">All</a></li> <li><a href="#/active">Active</a></li> <li><a href="#/completed">Completed</a></li> </ul> <button class="clear-completed"> Clear completed </button> </footer>