2014-01-06 3 views
0

Для myLongString, я хотел бы, чтобы отфильтровать егоЦепные Функции фильтра

(1) держать первые y символы и (2) делают это все строчные

HTML

<body ng-controller="MyCtrl"> 
    <span>{{myLongString | limitTo:5 | lowercase}}</span> 
</body> 

JavaScript

var myApp = angular.module('myApp',[]); 

function MyCtrl($scope) { 
    $scope.myLongString = "EEEEEEEEEEEE"; 
    $scope.limitTo = function(x, y) { 
     console.log("x:", x, "y:", y); 
     x.slice(0, y); 
    } 
    $scope.lowercase = function() { 
     $scope.myLongString = $scope.myLongString.toLowerCase(); 
    } 
} 

Текст все нижний, но я не вижу первые 5 символов. Кроме того, console.log не отображается.

Почему это?

http://jsfiddle.net/r9MTc/10/

ответ

1

Просто создайте filter, как:

angular.module('myApp'). 
filter('substring', function(){ 
    return function(str, length){ 
     return str.substring(0, length); 
    }; 
}); 

http://jsfiddle.net/CQZAL/

0

Я не знаю, Угловое, но сделал это работает:

var myApp = angular.module('myApp',[]); 

function MyCtrl($scope) { 
    $scope.myLongString = "EEEEEEEEEEEE"; 
    //No more needed here  
} 

myApp.filter('limitTo', [ function() {  
    return function(str, size) { 
    return str.slice(0, size); 
    }; 
}]); 

Обратите внимание, что ваш lowercase преобразование не работает, тот, который работал был встроенный в один.

Fiddle: http://jsfiddle.net/edgarinvillegas/r9MTc/11/

Приветствия

Смежные вопросы