angular学习笔记01
angular.js路由功能
用于实现单页应用
//html 代码
<div ng-view></div> //js代码
angular.module('myM1',['ng','ngRoute'])
.config(['$routeProvider',function($routeProvider){
$routeProvider
.when('/',{template:'这是首页页面'})
.when('/computers',{template:'这是电脑分类页面'})
.when('/printers',{templateUrl:'printers.html'})
.otherwise({redirectTo:'/'});
}])
angular.js自定义指令
app.directive('runoobDirective',function(){
return {
template:'<span>这个是自定义指令!</span>'
};
})
angular.js包含外部html文件
<div ng-include="'myUsers_List.htm'"></div>
angular.js ng-app指令意义
<html ng-app>
angularjs启动生成视图时,会根据ng-app元素同$rootScope进行绑定。$rootScope是所有$scope对象的最上层。
$rootScope相当于JavaScript的全局,使用频繁使用$rootscope是不太好的,相当于污染了全局。
指令通常不会自己创建$scope,但也有例外,例如ng-controller,ng-repeat 指令会创建自己的子作用域,并将它们附加到DOM元素上。
angular.js自定义指令,模块
///自定义指令,或组件
<my-directive> </my-directive>
<div my-directive></div>
<div class="my-directive"></div> app.directive('myDirective',function(){
return {
restrict:'EAC',//element , attr(推荐) , class ,m->注释
replace:true,//全部都用template替换
template:'<a href="http://www.baidu.com">click me </a>'
};
})
angular.js动态生成并双向数据绑定
//模板生成并双向绑定
<label for="">Their URL field: </label>
<input type="text" ng-model="theirUrl"/>
<div my-directive
some-attr = 'theirUrl'
my-link-text = 'click me to go to google'
></div> .directive('myDirective',function(){
return {
restrict:'EAC',//element , attr(推荐) , class ,m->注释
replace:true,//全部都用template替换
scope:{
myUrl: '=someAttr',
myLinkText: '@'
},
template:'<div><label>My Url Field:</label> <input type="text" ng-model="myUrl"/>\
<a href="{{myUrl}}">{{myLinkText}}</a></div>'
};
})
全局rootscope如何访问
//在angulard代码中可以使用run方法来访问$rootscope
app.run(function($rootScope){
$rootScope.rootScope = 'hello word'
})
//ng-if 和ng-show ,ng-hide 的区别是ng-if会真正的移除或生成节点。ng-show 是通过css来显示或隐藏节点。
//ng-repeat 遍历集合
会暴露一些特殊的属性
$index 遍历到第几个值 //值是从0 开始到length-1 ,所以奇数02468,偶数135
$first 遍历到第一个值的时候为true
$middle 遍历处于第一个与最后一个之间的值是为true
$last 遍历到最后一个值的时候为true
$even $index为偶数的时候为true
$odd $index为奇数的时候为true
//ng-init 指令用来设置内部作用域的初始状态.
//ng-cloak 也可以避免闪烁
<p ng-cloak>{{name}}</p>
//ng-bind-template,用于绑定多个表达式
<p ng-bind-template="{{message}}{{name}}">
//ng-change//输入的值发生改变时触发的事件
<input type="text" ng-model="equation" ng-change="change()"/>
$scope.change= function(){
console.log($scope.equation)
}
//directive 自定义指令的全部属性有
restrict: 指定angular指令在dom中以哪种方式声明,默认为a(attr),e(ele),c(class),m(comments),
可以同时指定多个 restrict:'EAMC'
priority: 优先级,数字类型 默认为零 (优先级最高的指令是ng-repeat)
terminal: 布尔值.比本指令优先级低的指令会停止。同一等级的指令不会被影响
template: 字符串或函数,可选,必须有一个(htm文本)或(可以接受两个参数的函数(temement,tattrs))
注意1,如果有多个同等级的标签,必须要有一根标签包含全部的标签
注意2,如果要换行,注意在每一行的后面加上反斜线(推荐使用templateUrl来引入外部的模板)
templateUrl: 可选参数1.html文件路径的字符串.2.(可以接受两个参数的函数(temement,tattrs))
replace: 布尔值 默认为false.模板默认插入到自定义指令的内部:为true则是直接插入
还有一些属性就等下篇。
angular学习笔记01的更多相关文章
- angular学习笔记(三十)-指令(10)-require和controller
本篇介绍指令的最后两个属性,require和controller 当一个指令需要和父元素指令进行通信的时候,它们就会用到这两个属性,什么意思还是要看栗子: html: <outer‐direct ...
- 软件测试之loadrunner学习笔记-01事务
loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...
- angular学习笔记(三十一)-$location(2)
之前已经介绍了$location服务的基本用法:angular学习笔记(三十一)-$location(1). 这篇是上一篇的进阶,介绍$location的配置,兼容各版本浏览器,等. *注意,这里介绍 ...
- angular学习笔记(三十一)-$location(1)
本篇介绍angular中的$location服务的基本用法,下一篇介绍它的复杂的用法. $location服务的主要作用是用于获取当前url以及改变当前的url,并且存入历史记录. 一. 获取url的 ...
- angular学习笔记(三十)-指令(7)-compile和link(2)
继续上一篇:angular学习笔记(三十)-指令(7)-compile和link(1) 上一篇讲了compile函数的基本概念,接下来详细讲解compile和link的执行顺序. 看一段三个指令嵌套的 ...
- angular学习笔记(三十)-指令(7)-compile和link(1)
这篇主要讲解指令中的compile,以及它和link的微妙的关系. link函数在之前已经讲过了,而compile函数,它和link函数是不能共存的,如果定义了compile属性又定义link属性,那 ...
- angular学习笔记(三十)-指令(6)-transclude()方法(又称linker()方法)-模拟ng-repeat指令
在angular学习笔记(三十)-指令(4)-transclude文章的末尾提到了,如果在指令中需要反复使用被嵌套的那一坨,需要使用transclude()方法. 在angular学习笔记(三十)-指 ...
- angular学习笔记(三十)-指令(5)-link
这篇主要介绍angular指令中的link属性: link:function(scope,iEle,iAttrs,ctrl,linker){ .... } link属性值为一个函数,这个函数有五个参数 ...
- angular学习笔记(三十)-指令(2)-restrice,replace,template
本篇主要讲解指令中的 restrict属性, replace属性, template属性 这三个属性 一. restrict: 字符串.定义指令在视图中的使用方式,一共有四种使用方式: 1. 元素: ...
随机推荐
- 原型及原型链,以及prototype和__proto__属性(笔记便于以后复习)
首先,js的数据结构有 原始类型(5种):Boolean.Number.String.Null.Underfined, 然后是引用类型:Array.Date.Error.RegExp.Function ...
- 匿名委托与Lambda表达式
通过使用匿名委托(匿名方法),使编程变得更加灵活,有关委托与匿名委托请参考我的前一篇Blog<委托与匿名委托>. 继续之前示例,代码如下: static void Main(string[ ...
- Sass之Compass学习笔记
compass Compass是Sass的工具库,就好像jQuery是js的库一样. sass有了compass的配合,就会更加事半功倍. Sass本身只是一个编译器,Compass在它的基础上,封装 ...
- Struts2.5 利用Ajax将json数据传值到JSP
AJAX +JSON=>JSP AJAX AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着 ...
- epoll全面讲解:从实现到应用
多路复用的适用场合 • 当客户处理多个描述符时(例如同时处理交互式输入和网络套接口),必须使用I/O复用. • 如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用 ...
- jQuery的基础跟JS的正则
大家好,我是唯芸星,这是我的一点点学过的知识,呈现给大家 1:正则表达式 包括: 1:正则表达式包括两部分 ①:定义正则表达式的规则 ②:正则表达式的规模(i/g/ ...
- 九九乘法表实现---基于python
# coding:utf-8"""九九乘法表"""for k in range(1,10): for i in range(1,k+1 ...
- 使用Spring实现读写分离( MySQL实现主从复制)
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt403 1. 背景 我们一般应用对数据库而言都是"读多写少&quo ...
- (一)Builder(建造者)模式
我们一般在构建javabean的对象的时候通常有三种写法: 1.直接通过构造函数传参的方式设置属性,这种方法如果属性过多的话会让构造函数十分臃肿,而且不能灵活的选择只设置某些参数. 2.采用重叠构造区 ...
- [js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程
在git命令行下,执行以下命令完成环境的搭建: 1,npm install --global vue-cli 安装vue命令行工具 2,vue init webpack vue-demo 使用v ...