app.filter('notBlank', [function () {
return function (array, key) {
var keys = [];
if (angular.isArray(key)) {
keys = key;
}
if (angular.isString(key)) {
keys = [key];
}
return array.filter(function (item) {
var flag = false;
angular.forEach(keys, function (i) {
flag = flag || StringUtils.isNotBlank(item[i]);
});
return flag;
});
}
}]);
app.filter('unique', function () {
return function (collection, keyname) {
var output = [],
keys = [];
angular.forEach(collection, function (item) {
var key = item[keyname];
if (keys.indexOf(key) === -1) {
keys.push(key);
output.push(item);
}
});
return output;
};
});
app.directive('ngOnload', function () {
return {
restrict: 'A',
link: function (scope, element, attrs) {
element.bind('load', function () {
scope.$apply(attrs.ngOnload);
});
}
};
});
app.directive('ngImgSrc', ['$rootScope', function () {
return {
restrict: 'A',
scope: {
ngImgSrc:'=',
ngWidth: '=',
ngHeight: '='
},
link: function (scope, element, attrs) {
scope.$watch('ngImgSrc',function (ngImgSrc) {
if (ngImgSrc) {
var image = element[0];
image.onload = function () {
var w = this.width;
var h = this.height;
var p = w / h;
//是否保持原图形式
if(this.height>scope.ngHeight||this.width>scope.ngWidth){
if (image.readyState == "complete" || image.readyState == "loaded" || image.complete) {
//宽高自适应
if (p > 1) {
this.style.width = scope.ngWidth + "px";
this.style.height = "auto";
} else {
this.style.width = "auto";
this.style.height = scope.ngHeight + "px";
}
}
}
}
element[0].src = ngImgSrc;
}
});
}
};
}]);