AngularJs基础
AngularJs核心特性
1.AngularJs的使用1.1 安装angular1.1.1 通过npm进行下载$ npm install angular
1.1.2 使用bower下载$ bower install angular
1.2 引入angularjs<script src="node_modules/angular/angular.js"></script>
1.3 安装扩展程序ng-inspector1.4 启动angular程序在指定标签上添加跟作用域 ng-app(rootScope->ngapp)
2.初识ng-model在ng-app下的内容都归angular所管理 2.1 数据模型的挂载将ng-model生成数据模型然后挂在当前作用域上 <input type="text" ng-model="name">
2.2 实现model和view的双向绑定变量和视图进行绑定,取出模型上的数据 {{name}}
3.表达式3.1 表达式的组成两个花括号{{}}组成,可以把数据绑定到HTML {{name}}
3.2 表达式结果用来做表达式结果 {{1+2*3}}
3.3 三元表达式{{name?name:'hello zfpx'}}
4.数据绑定4.1 ng-bind显示数据等同于{{}} <div ng-bind="name"></div>
4.2 ng-non-bindable取消绑定数据 <div ng-non-bindable>{{name}}</div>
4.3 ng-bind-template绑定多个模板 <div ng-bind-template="{{name}} {{age}}"></div>
5.初始化数据5.1 ng-initng-init在当前作用域下定义初始值。 <div ng-init="name='zfpx';age=7"></div>
5.2 赋值对象和数组<div ng-init="name=[{age:7},{age:8}]"></div>
6.data-指令data-ng-init 与 ng-init 等价 <div data-ng-init="name=[{age:7},{age:8}]"></div>
<div ng-init="name=[{age:7},{age:8}]"></div>
7.ng-repeat遍历7.1 遍历对象初始化对象 <div ng-init="phones={age:7,sex:2,name:'zfpx'}">
</div>
遍历对象 7.2 遍历数组初始化数组 <div ng-init="phones=[{name:'苹果',age:7},{name:'华为',{name:'htc',age:7}]">
</div>
遍历数组 <div ng-repeat="(key,phone) in phones">
{{key}}{{phone.name}}
</div>
7.3 嵌套循环数组 内部获取外部索引 方法2:
<div ng-init="phones=['苹果','苹果','苹果']">
<div ng-repeat="phone in phones track by $index" >
{{phone}}
</div>
</div>
8.ng-click显示隐藏/效果 8.1 增加样式<style>
.block{
display: block;
}
.none{
display: none;
}
</style>
8.2 增加ng-click<div ng-init="flag=false" ng-click="flag=!flag">
{{!flag?'显示':'隐藏'}}
</div>
<div class=" {{flag?'block':'none'}}">content</div>
9.ng-hide/ng-show/ng-if9.1 ng-hide/ng-show简单的操作css样式 <div ng-init="flag=false" ng-click="flag=!flag">
{{!flag?'显示':'隐藏'}}
</div>
<div ng-show="flag">content</div>
9.2 ng-ifng-if为false时候内部节点消失,内部指令不执行 <div ng-init="flag=false" ng-click="flag=!flag">
{{!flag?'显示':'隐藏'}}
</div>
<div ng-if="flag">content</div>
9.3 ng-switch<input type="text" ng-model="sex">
<div ng-switch="sex">
<p ng-switch-when="boy">boy</p>
<p ng-switch-when="girl">girl</p>
<p ng-switch-default>no person</p>
</div>
9.4增加class值9.4.1 写法1:<div ng-class ="{true:'red',false:'yellow'}[isActive]"></div>
9.4.2 写法2:<div ng-class ="{'selected':isSelected}"></div>
9.4.3 行内样式<div ng-style ="{color:'red'}"></div>
9.4.4 class使用场景bootstrap导航切换 <ul class="nav nav-tabs">
<li role="presentation" ng-click="click='Home'" ng-class="{active:click=='Home'}"><a href="">Home</a></li>
<li role="presentation" ng-click="click='Profile'" ng-class="{active:click=='Profile'}"><a href="">Profile</a></li>
<li role="presentation" ng-click="click='Messages'" ng-class="{active:click=='Messages'}"><a href="">Messages</a></li>
</ul>
10.引入页面加载外部模板 <div ng-include="'temp.html'"></div>
11.内置过滤器11.1 currency货币过滤器 {{100 | currency:'£' }}
11.2 lowercase & uppercase大小写转换过滤器 {{'abc' | uppercase }}
{{'ABC' | lowercase }}
11.3 limitTo限制位数 {{123456 | limitTo:5}}
11.4 number数字过滤器 {{1234.2345|number:2}}
11.5 json对象过滤器 <pre>
{{{aa:123,bb:456} | json}}
</pre>
11.6 date日期过滤器 {{1654325689063 | date:'yyyy-MM-dd hh:mm:ss'}}
11.7 orderBy排序orderBy:’字段名字’:’正反序'(true/false) <div ng-repeat="p in phones | orderBy:'age':'reverse'">
{{p.name}}
</div>
11.8.filter查询过滤器 11.8.1 查询全部值<div ng-repeat="p in phones | filter:age">
{{p.name}}
</div>
11.8.2 查询全指定字段<div ng-repeat="p in phones | filter:{age:query}">">
{{p.name}}
</div>
12.angular常用工具方法12.1 uppercase&&lowercasevar abc = angular.uppercase("aaaa");
console.log(abc);
var abc = angular.lowercase("aaaa");
console.log(abc);
12.2 equalsvar a = angular.equals(NaN,NaN);
console.log(a);
12.3 extendvar obj = {a:123},obj1 = {b:456};
angular.extend(obj,obj1);
console.log(obj);
12.4 fromJson&&toJsonvar obj = '{"aa":123,"bb":456}';
var a =angular.fromJson(obj);
a = angular.toJson(a);
console.log(a);
12.5 copy 12.6 forEach
var arr = [{name:1},{name:2},{name:3}];
var result = [];
angular.forEach(arr,function (item) {
this.push(item.name);
},result);
12.7 bindvar obj = {name:2};
function arr(who){console.log(this.name+who);}
var newArr = angular.bind(obj,arr,1);
newArr();
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |