• angular filter等知识


    部分知识来源

    1. Angular之自定义filter的用法
    2. Javascript parseFloat、parseDouble类型转换,数值加减,四舍五入
    3. Angular内置过滤器

    自定义filter#

    1.先自定义过滤器

    var pmsApp = angular.module("pmsApp", ["ui.router", 'ui.bootstrap', 'ui.bootstrap.pagination','ngCookies','pascalprecht.translate'],function ($httpProvider) {
        $httpProvider.defaults.headers.post['Content-Type'] = 'application/json';  
        $httpProvider.defaults.headers.post['X-Requested-With'] = 'XMLHttpRequest'; 
    });
    
    pmsApp.filter('sumColumn',function(){
        return function(data, key){
            if(typeof(data) === undefined || typeof(key) === undefined ) {
                return 0;
            }
    
            var sum = 0,
                i = data.length - 1;
    
            for(; i >= 0; i--) {
                sum += parseFloat(data[i][key] ? data[i][key] : 0);
            }
    
            return sum.toFixed(2);
        };
    });
    

    2.在视图上使用过滤器:

    {{obj | filterName:参数1:参数2:...}}  //obj是要过滤的对象
    

    3.在控制器里面使用:
    首先需注入$filter之后才能使用,具体用法如下:

    $filter(filterName)(要过滤的对象,参数1,参数2,...)
    

    注:

    $httpProvider.defaults.headers.post['Content-Type'] = 'application/json';  
    $httpProvider.defaults.headers.post['X-Requested-With'] = 'XMLHttpRequest'; 
    

    可以设置Content-Type 为 application/json ,但是如果ajax请求中参数传递不正确,还是有可能会报Content-Type的错误,比如
    Content type 'application/octet-stream' not supported ,所以需要检查参数传递问题

    Error:[$parse:lexerr]##

    有关AngularJS代码不符合语法,导致报错

    toFixed()##

    toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。

    var sum2 = (parseFloat(a)+parseFloat(b)+parseFloat(c)).toFixed(4)
    

    语法NumberObject.toFixed(num)参数描述num必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。

    $rootScope##

    调用全局方法,获取返回值,给当前controller赋值

    // 供应商分类
    $rootScope.getSupplierClassificationArray(function(result){
        $scope.supplierClassificationArray = result;
        $scope.queryContent.supplierType = result.data[0].classNode;
    });
    // 履约情况
    $rootScope.performStatusArray(function(result){
        $scope.performStatusSelect = result;
        $scope.queryContent.performStatus = result[0].value;
    });
    

    view代码 (设置value和text)

    <select class="form-control" ng-model="queryContent.performStatus">
        <option ng-repeat="performStatus in performStatusSelect" value="{{performStatus.value}}">	{{performStatus.text}}
    	</option>
    </select>
    

    注: 设置默认选中第一个正确方式为

    $scope.queryContent.performStatus = result[0].value; // √
    $scope.queryContent.performStatus = result[0]; // ×
  • 相关阅读:
    day22【网络编程】
    day21【缓冲流、转换流、序列化流】
    day20【字节流、字符流】
    设计模式7-适配器模式
    设计模式6-状态模式
    设计模式5-观察者模式
    设计模式4-建造者模式
    Web Service与WCF与Web API区别
    设计模式3-外观模式
    设计模式2-模板方法模式
  • 原文地址:https://www.cnblogs.com/cuiyf/p/11340722.html
Copyright © 2020-2023  润新知