js赋值给angularjs ng-model 数据的千分位格式,获取ng scope作用域

<div ng-controller="myController">
    <input type="text" onblur="thousands(this)" onfocus="focusSelect(this)" ng-model="myValue">
</div>
<script>
//失去焦点成千分位
function thousands(thi){
//    获取当前ng-model变量
//    $(angular.element(thi))转化为jquery对象
    var qGetModel = $(angular.element(thi)).attr("ng-model");
//    获取$scope变量
    var $scope = angular.element(thi).scope();

    var num = Math.round(thi.value * 100) / 100;  // 做保留两位数字的四舍五入
    num = num.toString();   //将输入的数字转换为字符串

    if(/^-?\d+\.?\d+$/.test(num)){  //判断输入内容是否为整数或小数
        if(/^-?\d+$/.test(num)){    //判断输入内容是否为整数 包含负数和正数
            num =num + ",00";   //将整数转为精度为2的小数,并将小数点换成逗号
        }else{
            num = num.toString().replace(/\./,',');    //将小数的小数点换成逗号
        }

        while(/\d{4}/.test(num)){ //
            /***
             *判断是否有4个相连的数字,如果有则需要继续拆分,否则结束循环;
             *将4个相连以上的数字分成两组,第一组$1是前面所有的数字(负数则有符号),
             *第二组第一个逗号及其前面3个相连的数字;
             * 将第二组内容替换为“,3个相连的数字,”
             ***/
            num = num.replace(/(\d+)(\d{3}\,)/,'$1,$2');
        }

        num = num.replace(/\,(\d*)$/,'.$1');   //将最后一个逗号换成小数点
//            console.log(num);
//            console.log(thi.value = num)
        thi.value = num;
        $scope[qGetModel] = num;  // 将数据赋值给ng-model变量 省去$apply()方法
//            return num;
    }else {
        thi.value = '0.00';
        // $scope[qGetModel] = "0.00";
    }
//    $scope.infot();  // 调用angularjs中的$scope.infot()函数
}
//获得焦点选中
function focusSelect(thi){
    if (!thi.value)
        return;
    var qvalue = thi.value.toString();   //将输入的数字转换为字符串
    qvalue = qvalue.replace(/[ ]/g,'');  // 去除空格
    qvalue = qvalue.replace(/,/g,'');  // 去除,
    qvalue = parseFloat(qvalue); // 去除小数点后为0的
    thi.value = qvalue;
    thi.select();
}
</script>

 

相关实用函数:

转化为jquery对象  $(angular.element(domElement))   必须引入jquery

获取当前元素的$socpe:     angular.element(domElement).scope() 
获取当前app的injector:   angular.element(domElement).injector() 
获取当前元素的controller:angular.element(domElement).controller() 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值