JavaScript (HTML5): AngularJS で truncate フィルター (何文字以上は「…」表示)

angular.module('myApp', []).
    filter('truncate', function () {
        return function (text, length, suffix) {
            if (typeof text === 'undefined')
                text = '';
            
            if (isNaN(length))
                length = 10;

            if (typeof suffix === 'undefined')
                suffix = '...';

            if (text.length > length)
                return String(text).substring(0, length) + suffix;
            
            return text;
        };
    });
<script src="http://code.angularjs.org/1.2.0-rc.3/angular.min.js"></script>

<div ng-app="myApp">
  <h2>Truncate Filter</h2>
  <div>
    <input type="text" ng-model="inputtext" placeholder="text" value="" />
  </div>
    
  <div>
    <h3>Output:</h3>
    <p>{{inputtext|truncate}}</p>
    <p>{{inputtext|truncate:5}}</p>
    <p>{{inputtext|truncate:15:"〜"}}</p>
  </div>
</div>