<!DOCTYPE html>
<html lang="zh_CN">
<head>
<title>字数小例子</title>
</head>
<body ng-app="noCntAPP">
<div ng-controller="noCntCtrl">
<h2>我的笔记</h2>
<textarea cols="30" rows="10" ng-model="txtArea"></textarea> <p><button>读取</button>
<button>提交</button>
<button>撤销</button>
<p>剩余字数: {{getCount()}}</p>
</p>
<div>
<script type="text/javascript" src="./angular.js"></script>
<script type="text/javascript">
angular.module('noCntAPP',[])
.controller('noCntCtrl',['$scope',function($scope){
$scope.txtArea=''; // 初始化文本区域值为空串
$scope.getCount=function(){
return 100 - $scope.txtArea.length;
}
}]);
</script>
</body>
</html>

剩余字数小例子

<!DOCTYPE html>
<html lang="zh_CN">
<head>
<title>字数小例子</title>
</head>
<body ng-app="noCntAPP">
<div ng-controller="noCntCtrl">
<h2>我的笔记</h2>
<textarea cols="30" rows="10" ng-model="txtArea"></textarea> <p><button>读取</button>
<button>提交</button>
<button>撤销</button>
<p>剩余字数: {{getCount()}}</p>
</p>
<div>
<script type="text/javascript" src="./angular.js"></script>
<script type="text/javascript">
angular.module('noCntAPP',[])
.controller('noCntCtrl',['$scope',function($scope){
$scope.txtArea=''; // 初始化文本区域值为空串
$scope.getCount=function(){
if($scope.txtArea.length>100){
$scope.txtArea = $scope.txtArea.slice(0,100); // 超过 100 截取前 0-99 个字符
}
return 100 - $scope.txtArea.length;
}
}]);
</script>
</body>
</html>

改进一下加入字符串长度判断

<!DOCTYPE html>
<html>
<head>
<title>数据存储演示</title>
</head>
<body ng-app="storageApp">
<div ng-controller="storageCtrl">
<h2>我的笔记</h2>
<textarea cols="30" rows="10" ng-model="note"> </textarea>
<p>
<button ng-click="save()">保存</button>
<button ng-click="read()">读取</button>
<button ng-click="truncate()">清空</button>
</p>
<p>{{getRestCount()}}</p>
<script type="text/javascript" src="./angular.js"></script>
<script type="text/javascript">
angular.module('storageApp',[])
.controller('storageCtrl',['$scope',function($scope){
$scope.note=''; //初始化笔记为空串
$scope.getRestCount=function(){
if($scope.note.length>100){
$scope.note=$scope.note.slice(0,100); // 若输入大于100个字符则截取前100个字符
return 100 - $scope.note.length;
}
}
$scope.save=function(){
alert('note is saved!');
localStorage.setItem("note_key",JSON.stringify($scope.note)); //转成json串保存到本地存储
$scope.note='';
}
$scope.read=function(){
$scope.note = JSON.parse(localStorage.getItem('note_key') || '[]'); //处理为 null 的情况
}
$scope.truncate=function(){
localStorage.removeItem('note_key');
$scope.note='';
}
}])
</script>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head><title>备忘示例代码</title></head>
<body ng-app="topAPP"> <div ng-controller="noteCtrl">
<h2>我的备忘</h2>
<p><input type="text" ng-model="newHabit"/><button ng-click="add()">新增</button></p>
<div ng-repeat="habit in habits">
<input type="checkbox" ng-model="habit.isChecked"/>
<span>{{habit.habit}}</span>
</div>
<p><button ng-click="del()">删除选中项</button></p>
<div>
<script src="./angular.js"></script>
<script>
angular.module('topAPP',[])
.controller('noteCtrl',['$scope',function($scope){
$scope.habits=[{habit:'吃饭',isChecked:false},{habit:'睡觉',isChecked:true},{habit:'打豆豆',isChecked:false}];
$scope.add=function(){
console.log($scope.newHabit);
if(!$scope.newHabit){
alert("输入不能为空!");
return;
}
var newObj={
habit:$scope.newHabit,
isChecked:false
};
$scope.habits.unshift(newObj);
$scope.newHabit='';
};
$scope.remove=function(){
$scope.habits.forEach(function(item,index){
if(item.isChecked){
$scope.habits.splice(index,1);
$scope.remove();// 递归防止连续index勾选
}
});
};
$scope.del=function(){
//逆向思维,仅显示未勾选的
var oldHabits=$scope.habits;
$scope.habits=[];// 新建一个空数组
oldHabits.forEach(function(item,index){
if(!item.isChecked){
$scope.habits.push(item);
}
});
}
}]);
</script>
</body>
</html>

angularjs遍历增删

AngularJS 启程三的更多相关文章

  1. AngularJS进阶(三十九)基于项目实战解析ng启动加载过程

    基于项目实战解析ng启动加载过程 前言 在AngularJS项目开发过程中,自己将遇到的问题进行了整理.回过头来总结一下angular的启动过程. 下面以实际项目为例进行简要讲解. 1.载入ng库 2 ...

  2. 现在就开始使用AngularJS的三个重要原因

    现在就开始使用AngularJS的三个重要原因 在线演示1 本地下载 如果你不熟悉什么是Angular.js的话,小编我强烈推荐你阅读 Javascript教程:AngularJS的五个超酷特性.简单 ...

  3. angularJS 服务三

    路由 一 简介 1.路由机制 为了实现无刷新的视图切换,我们通常会用ajax请求从后台取数据,然后套上HTML模板渲染在页面上,然而ajax的一个致命缺点就是导致浏览器后退按钮失效,尽管我们可以在页面 ...

  4. 使用AngularJS的三个重要原因

    入门教程:http://www.ituring.com.cn/minibook/303 : http://angularjs.cn/tag/AngularJS 原因一:Google开发的框架 要知道开 ...

  5. 精通AngularJS(三)深入scope,继承结构,事件系统和生命周期

    深入探讨 Scope 作用域 每一个 $scope 都是类 Scope 的一个实例.类 Scope 拥有可以控制 scope 生命周期的方法,提供事件传播的能力,并支持模板渲染. 作用域的层次结构 让 ...

  6. AngularJS 第三天----作用域

    作用域的概念及其功能 AngularJS使用作用域的概念来充当数据模型的作用,在视图和控制器之间起着桥梁的作用.由于双向绑定的数据特性,视图的修改会更新 $scope,同样对 $scope的修改也会重 ...

  7. angularjs的三目运算

    前言:前几天写代码的时候遇到一个问题,有一个按钮,有"已关注"和"+关注"两种状态,需要对这两种状态的按钮的背景颜色进行区分,单后点击"已关注&quo ...

  8. angularjs笔记(三)

    AngularJS API 7.其他一些常用指令,布尔类型的指令也可以用表达式 (1).数组索引$index <!DOCTYPE html> <html> <head&g ...

  9. AngularJS进阶(三十八)上拉加载问题解决方法

    AngularJS上拉加载问题解决方法 项目中始终存在一个问题:当在搜索栏输入关键词后(见图1),按照既定的业务逻辑应该是服务端接收到请求后,首先返回查询的前7条数据,待客户端出现上拉加载时,继续查找 ...

随机推荐

  1. docker之容器数据持久化

    1.挂载本地目录为容器的数据存放目录 [root@node03 ~]# docker run -itd --name web01 -v /container_data/web:/data ubuntu ...

  2. 接口自动化学习--testNG

    一个月一更的节奏~ testNg是一个开源的自动化测试框架..具体那些什么特点的就不想打了- -,贴张图(虽然也看不懂): 学习网站:https://www.yiibai.com/testng 一样是 ...

  3. Revit二次开发-根据视图阶段(Phase)创建房间

    最近开发业务中,有一个自动创建房间的功能,很自然的想到了Document.NewRooms2方法.但是当前功能的特殊之处在于,Revit项目视图是分阶段(Phase)的,不同阶段的房间是互相独立的. ...

  4. DRF02

    1. 视图 Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库查询的执行 1.1. 请求与响应 1.1.1 Request RES ...

  5. POJ 2431 (优先队列)

    题目链接:https://vjudge.net/problem/POJ-2431 思路: “ 在卡车行驶途中, 只有经过加油站才能加油.” 我们不妨转变思路, 理解成“当卡车驶过加油站时就获得了加油的 ...

  6. 机器学习1—简介及Python机器学习环境搭建

    简介 前置声明:本专栏的所有文章皆为本人学习时所做笔记而整理成篇,转载需授权且需注明文章来源,禁止商业用途,仅供学习交流.(欢迎大家提供宝贵的意见,共同进步) 正文: 机器学习,顾名思义,就是研究计算 ...

  7. Macaca初体验-PC端(Python)

    前言: Macaca 是一套面向用户端软件的测试解决方案,提供了自动化驱动,周边工具,集成方案.由阿里巴巴公司开源:http://macacajs.github.io/macaca/ 特点: 同时支持 ...

  8. LeetCode 617. Merge Two Binary Trees合并二叉树 (C++)

    题目: Given two binary trees and imagine that when you put one of them to cover the other, some nodes ...

  9. Daily Scrum NO.1

    工作概况 符美潇(PM): 今日工作 1.根据开发进程分配第一步开发工作,对相应的成员提出今日的开发要求:要求成员自己所负责的线程池,动态爬取,去重,文件分类等部分进行资料的相关了解. 2.Daily ...

  10. 软件工程团队项目第一次Sprint评审

    第一组:9-652 作品:炸弹人 评价:已经完成了界面的设计和基本功能,游戏已初具雏形.这款游戏可玩性很强,是个很不错的项目.但是对游戏并没有进行深入开发,不能持续的吸引玩家的兴趣,容易引起玩家的厌倦 ...