除了使用预设的过滤器,实际操作的时候还可以使用自定义的过滤器
<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>
最近因为一些事效率低下,哎