angular项目——小小记事本2

一,路由的规划。

需要模拟的页面有三个:all,active,conplete.

首先,写好铺垫需要的各种东西,重要的组件的引用等——

这里我们会将index.html设为主页,将body.html加载到主页上——

 1 <html lang="en" ng-app="myTodo"><head>
 2         <meta charset="utf-8">
 3         <title>angularjs • TodoMVC</title>
 4         <link rel="stylesheet" href="node_modules/todomvc-common/base.css">
 5         <link rel="stylesheet" href="node_modules/todomvc-app-css/index.css">
 6         <style>
 7             .pagination {
 8                 overflow: hidden;
 9                 padding: 20px;
10             }
11             .pagination ul li {
12                 width: 60px;
13                 height: 30px;
14                 line-height: 30px;
15                 border:1px solid black;
16                 float: left;
17                 list-style-type: none;
18                 margin-right: 10px;
19                 text-align: center;
20             }
21         </style>
22     </head>
23     <body>
24         <ng-view></ng-view> <!-- 路由区域,视图区域-->
25         
26         
27         <script src="node_modules/angular/angular.js"></script>
28         <script src="node_modules/angular-route/angular-route.js"></script>
29         <script src="js/app.js"></script>
30     
31 
32 </body>
33 </html>

主页的框架已经搭好,接下来是内容——body.html

 1 <section id="todoapp">
 2     <header id="header">
 3         <h1>todos</h1>
 4         <form style="margin:0" ng-submit="addTodo()">
 5             <input ng-model="newTodo" id="new-todo" placeholder="What needs to be done?" autofocus="">
 6         </form>
 7     </header>
 8     <section id="main" style="display: block;">
 9         <input ng-click="markAll(checked_statsus)" ng-model="checked_statsus" id="toggle-all" type="checkbox">
10         <label for="toggle-all">Mark all as complete</label>
11         <ul id="todo-list">
12             <li ng-repeat="item in itemList|filter:filterStatus|createtimeSort track by $index" ng-class="{completed: item.completed, editing: item.edit_status}">
13                 <div class="view">
14                     <input class="toggle" type="checkbox" ng-model="item.completed">
15                     <label ng-dblclick="editTodo(item)">{{item.title}}</label>
16                     <button class="destroy" ng-click="remove(item)"></button>
17                 </div>
18                 <form ng-submit="saveEdit(item)">
19                     <input todo-focus="item.edit_status" class="edit" ng-blur="saveEdit(item)" ng-model="item.title">
20                 </form>
21             </li>
22         </ul>
23         <div class="pagination">
24             <ul>
25                 <li ng-click="prevPage()">prevPage</li>
26                 <li ng-click="setPage(index)" ng-repeat="index in pagelist()">{{index + 1}}</li>
27                 <li ng-click="nextPage()">nextPage</li>
28             </ul>
29         </div>
30     </section>
31     <footer id="footer" style="display: block;">
32     <span id="todo-count"><strong>{{remainCount}}</strong> items left</span>
33     <ul id="filters">
34         <li>
35             <a ng-class="{selected: routName == 'all'}" href="#/all">All</a>
36         </li>
37         <li>
38             <a ng-class="{selected: routName == 'active'}" href="#/active">Active</a>
39         </li>
40         <li>
41             <a ng-class="{selected: routName == 'completed'}" href="#/completed">Completed</a>
42         </li>
43     </ul>
44     <button id="clear-completed" ng-click="clearCompleted()">Clear completed</button>
45 </footer>
46 </section>

因为要被加载到index上面,所以这个html中只有body部分的代码就够了。基本框架如上所示,其中的方法需要讲解一下——

第4行——ng-submit="addTodo()"

  当这个表单被提交的时候会触发这个方法,方法是用来将内容记录下来的。

第5行——

<input ng-model="newTodo" id="new-todo" placeholder="What needs to be done?" autofocus="">

  一个input组件,设定了默认文字和自动获取光标

第9行——

<input ng-click="markAll(checked_statsus)" ng-model="checked_statsus" id="toggle-all" type="checkbox">
一个选项框,点击之后触发markAll(checked_statsus)方法,作用是全选所有的列表项。

11-22——

   循环输出所需要的列表项。12行的前面是过滤,后面是动态加载css类。

24-28——

   三个按钮,分别控制前一页后一页

32——<span id="todo-count"><strong>{{remainCount}}</strong> items left</span>

动态显示某个内容,这个remainCount是后台的一个变量

33-43 ——

三个超链接,用于进行跳转。前面的ng-class用于动态切换css,当内容变为ng-class="{selected: true'}"的时候会使得自身处于被选中的css下。后面的是【页内】跳转。

44——

里面的方法clearCompleted()用于清空表单内容。

至此,所有需要的方法,类,和注意事项已经书写清楚。css使用bookstap便足够,接下来就是app.js部分。

原文地址:https://www.cnblogs.com/thestudy/p/5661680.html