部分知识来源
自定义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]; // ×