AngularJS(二)

除了使用预设的过滤器,实际操作的时候还可以使用自定义的过滤器

	<body ng-app="fkApp" ng-controller="fkCtrl">
		请输入字符串:<input type="text" ng-model="test"/><p></p>
		{{test|fkdelete:2:5}}
		<script>
			var app=angular.module("fkApp",[]);
			
			app.controller("fkCtrl",function($scope,$filter){
				$scope.s="1233456";
				console.log($filter("fkdelete")($scope.s,2,4));
			});
			
			app.filter("fkdelete",function(){
				return function(input,start,end){
					if(!input){
						input = "";
					}
					if(!start){
						start=0;
					}
					if(!end){
						end = input.length;
					}
					if(start>end){
						return input
					}
					return input.substring(0,start)+input.substring(end,input.length)
				}
			});
		</script>
	</body>

函数API
AngularJS内置了大量的API,通过angular对象的方法来提供。
module()、bootstrap()之类的都属于函数API
除此之外,还有以下扩展性函数:
angular.bind(obj,fn,args):
将fn函数绑定为obj对象的方法,args为函数fn的默认调用参数
angular.copy(source,[destination]):
深拷贝将source中的所有元素复制到destination中,没有d这个参数就返回副本,有的话就清空d再复制
angular.equals()
判断两个对象是否相等(具体的书上解释太绕了,没看懂,之后再说)
angular.extend(dst,srcs)
浅拷贝,将多个对象secs的属性值复制到对象dst中,srcs原本的属性都不会变化,用merge是深拷贝
angular.forEach(obj,iterator,[context])
使用iterator函数遍历对象obj中的key-value键对
angular.fromJson(json)
从json字符中恢复js对象
angular.identity()
这是一个形式像:function(x){return x;}的函数,用于避免空函数异常
angular.noop()
一个空白函数,用于避免空函数异常
angular.toJson(obj,pretty):
将js对象转换为json,prety若为true,则字符串包含空行和空白,若为整数则用于设置json字符串的缩进字符数

第一个函数
angular.bind

<script>
			var obj = {name:"x",age:5};
			var fn =function(adj){
				console.log(this.name+this.age);
				console.log(adj);
			};
			
			var f = angular.bind(obj,fn,"???");
			var t = angular.bind({name:"y",age:1},fn);
			t("滚啊");
			f();
		</script>
	</body>

copy的练习例子

<body ng-app="fkApp" ng-controller="fkCtrl">
		<form novalidate class="simple-form">
			<label>name:<input type="text" ng-model="user.name" /></label><br/>
			<label>age:<input type="number" ng-model="user.age" /></label><br/>
			sex:<label><input type="radio" ng-model="user.sex" value="male"/>man</label>
			<label><input type="radio" ng-model="user.sex" value="female"/>woman</label><br>
			<button ng-click="reset()">重设</button>
			<button ng-click="update(user)">保存</button>
		</form>
		<pre>表单={{user|json}}</pre>
		<pre>持久={{master|json}}</pre>
		<script>
			angular.module('fkApp',[])
			.controller('fkCtrl',function($scope){
				$scope.master ={};
				$scope.reset = function(){
					$scope.user = angular.copy($scope.master);
				};
				$scope.update = function(user){
					angular.copy(user,$scope.master);
				};
				$scope.reset();
			});
		</script>
	</body>

使用extend的例子
extend后面的对象可以是多个

<body>
		<script>
			var obj1 = {
				name : 'xx',
				age : 20
				
			};
			obj2 = {skill : "变化"};
			var object = angular.extend(obj2,obj1);
			
			console.log(object);
			console.log(obj2);
			var car1 ={
				brand : 'B<W',
				model : 'X5'
			};
			var car2 = {
				color : 'black'
			};
			var newCar = angular.extend({},car1,car2);
			console.log(newCar);
			console.log(car1);
		</script>
	</body>

forEach函数的用例

	<body>
		<script>
			var obj = {name:'temmoo',gender:'man'};
			var arr = [];
			
			angular.forEach(obj,function(value,key){
				this.push(key+'+'+value);
				
			},arr);
			console.log(arr);
		</script>
	</body>

下面是关于fromJson和toJson的例子

	<body>
		<script>
			var user = {
				name:"xx",
				age:100,
				skill:"yy"
			};
			var str = angular.toJson(user);
			console.log(str);
			
			var obj = angular.fromJson(str);
			console.log(obj);
		</script>
	</body>

最近因为一些事效率低下,哎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值