一,路由的规划。

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

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

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

 <html lang="en" ng-app="myTodo"><head>
<meta charset="utf-8">
<title>angularjs • TodoMVC</title>
<link rel="stylesheet" href="node_modules/todomvc-common/base.css">
<link rel="stylesheet" href="node_modules/todomvc-app-css/index.css">
<style>
.pagination {
overflow: hidden;
padding: 20px;
}
.pagination ul li {
width: 60px;
height: 30px;
line-height: 30px;
border:1px solid black;
float: left;
list-style-type: none;
margin-right: 10px;
text-align: center;
}
</style>
</head>
<body>
<ng-view></ng-view> <!-- 路由区域,视图区域--> <script src="node_modules/angular/angular.js"></script>
<script src="node_modules/angular-route/angular-route.js"></script>
<script src="js/app.js"></script> </body>
</html>

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

 <section id="todoapp">
<header id="header">
<h1>todos</h1>
<form style="margin:0" ng-submit="addTodo()">
<input ng-model="newTodo" id="new-todo" placeholder="What needs to be done?" autofocus="">
</form>
</header>
<section id="main" style="display: block;">
<input ng-click="markAll(checked_statsus)" ng-model="checked_statsus" id="toggle-all" type="checkbox">
<label for="toggle-all">Mark all as complete</label>
<ul id="todo-list">
<li ng-repeat="item in itemList|filter:filterStatus|createtimeSort track by $index" ng-class="{completed: item.completed, editing: item.edit_status}">
<div class="view">
<input class="toggle" type="checkbox" ng-model="item.completed">
<label ng-dblclick="editTodo(item)">{{item.title}}</label>
<button class="destroy" ng-click="remove(item)"></button>
</div>
<form ng-submit="saveEdit(item)">
<input todo-focus="item.edit_status" class="edit" ng-blur="saveEdit(item)" ng-model="item.title">
</form>
</li>
</ul>
<div class="pagination">
<ul>
<li ng-click="prevPage()">prevPage</li>
<li ng-click="setPage(index)" ng-repeat="index in pagelist()">{{index + 1}}</li>
<li ng-click="nextPage()">nextPage</li>
</ul>
</div>
</section>
<footer id="footer" style="display: block;">
<span id="todo-count"><strong>{{remainCount}}</strong> items left</span>
<ul id="filters">
<li>
<a ng-class="{selected: routName == 'all'}" href="#/all">All</a>
</li>
<li>
<a ng-class="{selected: routName == 'active'}" href="#/active">Active</a>
</li>
<li>
<a ng-class="{selected: routName == 'completed'}" href="#/completed">Completed</a>
</li>
</ul>
<button id="clear-completed" ng-click="clearCompleted()">Clear completed</button>
</footer>
</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部分。

angular项目——小小记事本2的更多相关文章

  1. angular项目——小小记事本1

    这次的项目是制作一个记事本,有点类似于手机qq聊天信息. 内容:在一个input当中输入一行数据,之后提交,这个数据便会记录在下面.随着提交的增加,数据会以列表形式排列下来. 列表中,前面有一个组件, ...

  2. angular.js——小小记事本3

    app.js部分,首先是路由.这个之前讲过了,链接在这里—— http://www.cnblogs.com/thestudy/p/5661556.html var app = angular.modu ...

  3. 把angular项目整合到.net mvc中

    之前的开发选择的是完全舍弃服务端,仅保留最简单web服务器提供angular经打包的静态资源,此外所有的业务与数据请求都访问一个分离的WebApi来实现.不过最近碰到一个需求,有必要使用多个客户端,而 ...

  4. 个人从源码理解angular项目在JIT模式下的启动过程

    通常一个angular项目会有一个个模块(Module)来管理各自的业务,并且必须有一个根模块(AppModule)作为应用的入口模块,整个应用都围绕AppModule展开.可以这么说,AppModu ...

  5. Angular20 nginx安装,angular项目部署

    1 nginx安装(Windows版本) 1.1 下载安装包 到官网下载Windows版本的nginx安装包 技巧01:下载好的压缩包解压即可,无需安装 1.2 启动nginx 进入到解压目录,点击 ...

  6. Angular4--提速--提升Angular项目的首页打开速度(包含微信登录优化)

    Angular项目的首页打开速度很慢,有时候会有几秒的加载时间.如果在手机端访问的话,怕是要等待十多秒,这对用户体验很差.下面参考http://www.cnblogs.com/feiyu159/p/8 ...

  7. Angular4---部署---将Angular项目部署到IIS上

    ---恢复内容开始--- Angular项目部署到一个IIS服务器上 1.安装URL rewrite组件: 网址:https://www.microsoft.com/en-us/download/de ...

  8. 网站开发进阶(二十一)Angular项目信息错位显示问题解决

    Angular项目信息错位显示问题解决 绪 最近在项目开发过程中遇到这样一个棘手的问题:查询出所有订单信息后,点击选择某一个订单,查询出的结果是上一次查询所得的结果.而且会出现点击两次才可以显示订单详 ...

  9. [转]Angular4---部署---将Angular项目部署到IIS上

    本文转自:https://www.cnblogs.com/kingkangstudy/p/7699710.html Angular项目部署到一个IIS服务器上 1.安装URL rewrite组件: 网 ...

随机推荐

  1. 写入XML文件

    public static void writeXMLFile(Document doc,String xmlFileName) throws IOException{  OutputFormat f ...

  2. 好用的meta标签

    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> 保证中文在网 ...

  3. oracle 字段类型详解

    CHAR 固定长度字符串 最大长度2000 bytes VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度 ...

  4. Linux系统安装rar压缩软件

    将 hebaodans.com 目录打包为 hebaodans.rar # rar a hebaodans.rar ./hebaodans.com/ 解压 hebaodans.rar 到当前目录 # ...

  5. express学习点滴- session()和cookieSession()的区别

    express 里提供了两种有关session的中间件 * session() 提供了内存和数据库两种方式保存session.具体两种session原理请自行学习,不进行展开了.自己也是一知半解... ...

  6. js--事件对象的理解1

    在触发DOM上的某个事件时,会产生一个事件对象event.这个对象中包含着所有与事件有关的信息.包括导致事件的元素,事件的类型以及其他与特定事件相关的信息. 举例鼠标操作导致的事件对象中,会包含鼠标位 ...

  7. Java 集合 HashMap & HashSet 拾遗

    Java 集合 HashMap & HashSet 拾遗 @author ixenos 摘要:HashMap内部结构分析 Java HashMap采用的是冲突链表方式 从上图容易看出,如果选择 ...

  8. GROUP_CONCAT()多条数据.拼接字符串 最大长度1024

    mysql cmd show variables like "group_concat_max_len"; concat  合并多条数据 成一个逗号分隔的字符串 查找mysql的配 ...

  9. 【转】Spring事务超时时间可能存在的错误认识

    1.先看代码 1.1.spring-config.xml <bean id="dataSource" class="org.springframework.jdbc ...

  10. 关于python的类方法、实例方法和静态方法区别

    python的类方法需要在方法前面加装饰器:@classmethod ,静态方法是在方法前面加装饰器:@staticmethod. 类方法.类属性是属于类自身,属于类自身的命名空间,和实例方法.实例属 ...