<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script>
<script src="//code.angularjs.org/1.2.19/i18n/angular-locale_es-es.js"></script>
<script src="script.js"></script>
</head>
<body ng-controller="PruebaController">
{{ valorEscalar | mayusculas:3}}
<br>
<br>
<div ng-repeat="valor in valorArray | mayusculas:3">
{{valor}}
</div>
</body>
</html>
var app=angular.module("app",[]);
function mayusculasFilter(valor,length) {
if (typeof (valor)==="string") {
if (angular.isNumber(length) && length>=0) {
return valor.substr(0,length).toUpperCase()+valor.substr(length);
} else {
return valor.toUpperCase();
}
} else if (angular.isArray(valor)) {
var newValue=[];
for(var i=0;i<valor.length;i++) {
if (typeof (valor[i])==="string") {
if (angular.isNumber(length) && length>=0) {
newValue.push(valor[i].substr(0,length).toUpperCase()+valor[i].substr(length));
} else {
newValue.push(valor[i].toUpperCase());
}
} else {
newValue.push(valor[i]);
}
}
return newValue;
} else {
return valor;
}
}
app.filter("mayusculas",['$log',function ($log) {
$log.log("Creando el filtro");
return mayusculasFilter;
}]);
app.controller("PruebaController",['$scope',function($scope) {
$scope.valorEscalar="hola mundo";
$scope.valorArray=['lunes','martes',3.1416,'miercoles','jueves'];
}]);
Ejemplo de creación de filtros