index.html 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <!doctype html>
  2. <html data-framework="vue">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Vue.js • TodoMVC</title>
  6. <link rel="stylesheet" href="../../../node_modules/todomvc-app-css/index.css">
  7. <style>[v-cloak] { display: none; }</style>
  8. </head>
  9. <body>
  10. <section class="todoapp">
  11. <header class="header">
  12. <h1>todos</h1>
  13. <input class="new-todo"
  14. autofocus autocomplete="off"
  15. placeholder="What needs to be done?"
  16. v-model="newTodo"
  17. @keyup.enter="addTodo">
  18. </header>
  19. <section class="main" v-show="todos.length" v-cloak>
  20. <input id="toggle-all" class="toggle-all" type="checkbox" v-model="allDone">
  21. <label for="toggle-all">Mark all as complete</label>
  22. <ul class="todo-list">
  23. <li v-for="todo in filteredTodos"
  24. class="todo"
  25. :key="todo.id"
  26. :class="{ completed: todo.completed, editing: todo == editedTodo }">
  27. <div class="view">
  28. <input class="toggle" type="checkbox" v-model="todo.completed">
  29. <label @dblclick="editTodo(todo)">{{ todo.title }}</label>
  30. <button class="destroy" @click="removeTodo(todo)"></button>
  31. </div>
  32. <input class="edit" type="text"
  33. v-model="todo.title"
  34. v-todo-focus="todo == editedTodo"
  35. @blur="doneEdit(todo)"
  36. @keyup.enter="doneEdit(todo)"
  37. @keyup.esc="cancelEdit(todo)">
  38. </li>
  39. </ul>
  40. </section>
  41. <footer class="footer" v-show="todos.length" v-cloak>
  42. <span class="todo-count">
  43. <strong>{{ remaining }}</strong> {{ remaining | pluralize }} left
  44. </span>
  45. <ul class="filters">
  46. <li><a href="#/all" :class="{ selected: visibility == 'all' }">All</a></li>
  47. <li><a href="#/active" :class="{ selected: visibility == 'active' }">Active</a></li>
  48. <li><a href="#/completed" :class="{ selected: visibility == 'completed' }">Completed</a></li>
  49. </ul>
  50. <button class="clear-completed" @click="removeCompleted" v-show="todos.length > remaining">
  51. Clear completed
  52. </button>
  53. </footer>
  54. </section>
  55. <footer class="info">
  56. <p>Double-click to edit a todo</p>
  57. <p>Written by <a href="https://evanyou.me">Evan You</a></p>
  58. <p>Part of <a href="https://todomvc.com">TodoMVC</a></p>
  59. </footer>
  60. <script>
  61. // for testing
  62. if (navigator.userAgent.indexOf('PhantomJS') > -1) localStorage.clear()
  63. </script>
  64. <!-- Delete ".min" for console warnings in development -->
  65. <script src="../../../dist/vue.min.js"></script>
  66. <script src="app.js"></script>
  67. </body>
  68. </html>