angular1中如何在service里添加公共的方法?(转载)

  

  那么原生的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;
              }
             };

以上是博主在别的地方看到的,感觉十分有用,特地转载过来。以下是原博客地址:

http://www.cnblogs.com/xxwei/p/7463214.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值