Angular随笔第一课
一、调用angular
- 加载angular.js库(可以从google的cdn中加载类库,https://ajax.googleapis.com/ajax/libs/angularjs/1.0.4/angular.min.js,也可以下载到本地,楼主我就是下载到本地来引入代码的)
- 使用ng-app指令告诉angular应该管理dom中的哪一部分。
二、使用ng-app申明angular的边界
你可以使用ng-app指令告诉angular应该管理页面的哪一块,如果你正在构建一款纯angular应用,那么你应该把ng-app指令写在<html>标签中。
Eg:<html ng-app></html>
或者可以让angular只管理页面中的一部分
Eg:<html><div ng-app></div></html>
现在写一个简单的列子
<!DOCTYPE html>
<html ng-app = 'myApp'>
<head>
<title></title>
<meta name="name" content="content" charset="utf-8">
<script src="angular-1.4.2/angular.js" type="text/javascript"></script>
<script type="text/javascript">
angular.module('myApp',[]).controller('textController',function($scope){
$scope.someText = 'you have started your journey';
})
</script>
</head>
<body ng-controller="textController">
<p>{{someText}}</p>
</body>
</html>
在页面中会显示 you have started your journey。
三、显示文本
在angular中,数据绑定有2种实现方法,一种是前面写的{{}}花括号的形式,另外一中就是使用ng-bind属性的指令形式。<p ng-bind=”someText”></p>
在书写中,我们会推荐使用第二种数据绑定的方法,原因如下:
- 在使用花括号的时候,第一个加载的页面,也就是应用中的index.html,其未被渲染的模板可能被用户看到。而使用第二种方法的视图就不会遇到这个问题了。(原因是:浏览器需要首先加载html页面,渲染他,然后angular才有机会把他解释成你期望看到的页面)
四、表单输入
我们可以使用ng-model属性把元素绑定到你的模型属性上
<form ng-controller="some">
<input type="checkbox" ng-model="youcheck">
</form>
- 当用户选中了复选框之后,some中的$socpe.youcheck=true,而反选复选框会让$socpe.youcheck=false;
- 如果你在some中把$socpe.youcheck的值设置为true,那么UI中的复选框就会变成选中的状态,反之就不会选中。
举一个列子
<form ng-controller="startUp">
Strat: <input type="text" ng-change="number()" ng-model="startnum">
add : {{needed}}
</form>
<script type="text/javascript">
angular.module('myApp',[]).controller('startUp',function($scope){
$scope.startnum = 0;
$scope.number = function(){
$scope.needed = $scope.startnum * 10;
}
})
</script>
当我们在文本框输入值的时候,我们会看到add的值是随时改变的。但是这样的话,就会出现一个问题,即如果还有其他输入框也绑定到模型中的这个属性上,会怎样呢?
我们可以引入$scope中的$watch()的函数----可以调用$watch()函数来监视一个表达式,当这个表达式发生改变时就会调用一个回调函数。
下面我们用这一技术重写
<script type="text/javascript">
angular.module('myApp',[]).controller('startUp',function($scope){
$scope.startnum = 0;
number = function(){
$scope.needed = $scope.startnum * 10;
}
$scope.$watch('startnum',number);
})
</script>
在某些情况下,你不想一有变化就立刻做出反应,直到用户告诉你他已经准备好了,列如发出一条确认信息之后(如下所示,是在form表单上面使用的列子,当表单提交的时候可以执行这个函数)
<form ng-controller="form" ng-submit="request()">
start:<input ng-change="computer()" ng-model="startform">
add: {{addform}}
<button>click me</button>
</form> <script type="text/javascript">
angular.module('myApp',[]).controller('form', function ($scope) {
$scope.computer = function () {
$scope.addform = $scope.startform * 10;
}
$scope.request = function () {
window.alert('sorry');
}
})
</script>
同时,在提交表单的时候,ng-submit还会自动阻止浏览器执行默认的post操作
onclick ----ng-click ondbclick-----ng-dbclick
Angular随笔第一课的更多相关文章
- Angular随笔第二课
一. 列表表格以及其它迭代型元素 ng-repeat 可能是最有用的angular指令了,它可以根据集合中的项目一次创建一组元素的多份拷贝.不管在什么地方,只要你想创建一组事物的列表,你就可以使用这 ...
- Spark 3000门徒第一课随笔
昨晚听了王家林老师的Spark 3000门徒系列课程的第一课,把scala基础过了一遍,对ArrayBuffer有了新的认识: Array本身创建后不可修改ArrayBuffer可修改import s ...
- vue.js学习(第一课)
学习资料 来自台湾小凡! vue.js是javascript的一个库,只专注于UI层面,核心价值永远是 API的简洁. 第一课: 不支持IE8. 1.声明式渲染: el元素的简称 element : ...
- Magento学习第一课——目录结构介绍
Magento学习第一课--目录结构介绍 一.Magento为何强大 Magento是在Zend框架基础上建立起来的,这点保证了代码的安全性及稳定性.选择Zend的原因有很多,但是最基本的是因为zen ...
- <-0基础学python.第一课->
初衷:我电脑里面的歌曲很久没换了,我想听一下新的歌曲,把他们下载下来听,比如某个榜单的,但是一首一首的点击下载另存为真的很恶心 所以我想有没有办法通过程序的方式来实现,结果还真的有,而且网上已经有有人 ...
- 留念 C语言第一课简单的计算器制作
留念 C语言第一课简单的计算器制作 学C语言这么久了. /* 留念 C语言第一课简单的计算器制作 */ #include<stdio.h> #include<stdlib.h ...
- MFC学习-第一课 MFC运行机制
最近由于兴趣爱好,学习了孙鑫的MFC教程的第一课.看完视频了,自己便用visual studio 2010尝试了MFC编程,其中遇到了一些问题. 1.vs2010不像vs6.0那样可以新建一个空的MF ...
- OpenCV 第一课(安装与配置)
OpenCV 第一课(安装与配置) win10,opencv-2.4.13, 安装, vs2013, 配置 下载安装软件 官网OpenCV下载地址下载最新版本,我下载的是opencv.2.4.13,然 ...
- 【第一课】神奇的Context
初学Android的困惑 初学Android跳转页面的时候,往往教程里是这么写的: Intent intent = new Intent(); //MyActivity就是当前的Activity,It ...
随机推荐
- [原创] IAR7.10安装注册教程
代码开发简单化的趋势势不可挡,TI 公司推出的 IAR7.10 以上版本,集成代码库,方便初学者进行学习移植.本教程详细列出IAR7.10安装以及注册步骤,不足之处望多多交流. 好了进入正题. 第一, ...
- 函数求值(swust oj0274)
函数求值(0274) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 1767 Accepted: 324 Accepted 14级卓 ...
- GreenDao与Rx的完美搭配
作为Android开发者,一定不会对 GreenDao 和 ReactiveX 陌生. GreenDao 号称Android最快的关系型数据库 ReactiveX Rx是一个编程模型,目标是 ...
- 《Algorithms Unlocked》读书笔记2——二分查找和排序算法
<Algorithms Unlocked>是 <算法导论>的合著者之一 Thomas H. Cormen 写的一本算法基础,算是啃CLRS前的开胃菜和辅助教材.如果CLRS的厚 ...
- 【one day one linux】linux下的软件包管理工具
Linux 下的软件包管理工具 linux下的软件安装可以通过两种方式,一种是直接使用自带的软件包管理工具安装,另外一种通过编译源码安装. 1.软件包的种类 Red Hat和Fedora:redhat ...
- Java 8 Lambda 表达式
Lambda 是啥玩意 简单来说,Lambda 就是一个匿名的方法,就这样,没啥特别的.它采用一种非常简洁的方式来定义方法.当你想传递可复用的方法片段时,匿名方法非常有用.例如,将一个方法传递给另外一 ...
- 【Java 并发】详解 ThreadPoolExecutor
前言 线程池是并发中一项常用的优化方法,通过对线程复用,减少线程的创建,降低资源消耗,提高程序响应速度.在 Java 中我们一般通过 Exectuors 提供的工厂方法来创建线程池,但是线程池的最终实 ...
- 一行code实现ADO.NET查询结果映射至实体对象。
AutoMapper是一个.NET的对象映射工具. 主要用途 领域对象与DTO之间的转换.数据库查询结果映射至实体对象. 这次我们说说 数据库查询结果映射至实体对象. 先贴一段代码: public S ...
- vscode同步设置&扩展插件
首先安装同步插件: Settings Sync 第二部进入你的github如图: 打开设置选项: 新建一个token: 如图: 记住这个token值 转到vscode 按shift+alt +u ...
- DirectFB、Layer、Window、Surface之间关系
层(Layers) 表示一块儿独立的图像缓冲区.大多数的嵌入式设备都有多个层.他们由硬件使用合适的alpha值来blending,然后显示. 表面 (Surface) 用来保存像素数据的保留内存区域. ...