angular1中如何在service里添加公共的方法?
对于一个很久没写过作文的文学青年,我都不知道怎么开头了。。。。。
相信很多写过angular的同学都学过原生的js,没学过也没事,毕竟我写的通俗易懂,
看一眼能活千年,写一写可长生不老。
那么原生的js封装一个方法是怎么写的呢?
function add(a,b){
return a+b;
};
就问你通俗不通俗,简单不简单,是不是看了就会心一笑,感觉学到了js的真谛!
那么问题来了,如何在service里把这个方法添加进去,然后在各个controller里用呢?
好吧,我先写个例子:
angular.module('services', []).service('$conmon',function(){
this.add=function(a,b){
return a+b;
};
})
在controller里把$conmon方法放进去:
var myApp=angular.module('myApp',[]);
myApp.controller('MyController',fuction($scope,$conmon){
$scope.index=$conmon.add(4,5);
});
好啦,这样子的话,这个add方法就可以在controller里使用了,
这其实就是所谓的依赖注入(说实在的,一开始听这个词我就懵逼)。
在这里,我再附赠几个大家经常用的原生js的方法改写成angular
的公共方法,大家其实也可以自己改,就像上面一样,很简单。
angular.module('services', []).service('$usedate', function(){
this.format = function(time){//格式化日期为:yyyy-mm-dd
if(!!time){}else{return "";}
var time = new Date(time);
var year = time.getFullYear();
var month = time.getMonth() + 1;
var day = time.getDate();
var str = year + '-' + p(month) + '-' + p(day);
return str;
}
this.formatTime = function(time){//格式化时间为:hh:mm:ss
if(!!time){}else{return "";}
var time = new Date(time);
var hour= time.getHours();
var min=time.getMinutes();
var sec=time.getSeconds();
var str = p(hour) + ':' + p(min) + ':' + p(sec);
return str;
}
function p(s) {
return s < 10 ? '0' + s: s;
};
}).service('$calcu',function(){//精确计算浮点型数值相乘的函数
this.mathMul = function(v1, v2){
var m = 0;
var s1 = v1.toString();
var s2 = v2.toString();
try
{
m += s1.split(".")[1].length;
}
catch (e)
{
}
try
{
m += s2.split(".")[1].length;
}
catch (e)
{
}
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
};
//精确计算浮点型数值相加的函数
this.mathAdd =function(arg1, arg2) {
var r1, r2, m;
try {
r1 = (1 * arg1).toString().split(".")[1].length;
}
catch (e) {
r1 = 0;
}
try {
r2 = (1 * arg2).toString().split(".")[1].length;
}
catch (e) {
r2 = 0;
}
m = Math.pow(10, Math.max(r1, r2));
return (arg1 * m + arg2 * m) / m;
} ;
//精确计算浮点型数值减法的函数
this.mathSub = function(arg1, arg2) {
return $scope.mathAdd(arg1, -arg2);
};
//保留两位小数的函数(截断非四舍五入)
this.returnFloat = function(value){
var valueStr = value.toString();
var xsd= valueStr.split(".");
if(xsd.length==1){
value=value.toString()+".00";
return value;
}
if(xsd.length>1){
if(xsd[1].length<2){
value=value.toString()+"0";
}else{
value =valueStr.substr(0,valueStr.indexOf(".")+3);
}
return value;
}
};
好啦,就分享到这里,拿去用吧,坚决不要钱,良心博主,妥妥的。