2016-08-10 1 views
0

Я пытаюсь замаскировать все символы, кроме последних четырех, используя фильтр в angularjs. Я получаю следующее сообщение об ошибке.Угловой типError: text.replace не является функцией. ng-repeat

Error

HTML:

<table> 
... 
<tr ng-repeat="emp in FiltredCorpEmployees | orderBy:propertyName:reverse" ng-model="emp.evaluationStatusId"> 
    <td class="col-md-2 text-center">{{emp.hashSSN | MaskText}}</td> 
</tr> 

.. 
</table> 

JS:

DashBoardModule.filter('MaskText', function() { 
    //debugger; 
    return function (text) { 
     if (!text) { 
      return text; 
     } 
     return text.replace(/.(?=.{4})/g, 'X'); 
    }; 
}) 
+1

'.replace' доступна только для строки, что, если вы 'консоль .log (typeof text) '? – jessh

+0

@jessh thank u. выяснил, в чем проблема. console.log (typeof text)? возвращает число. –

+1

попробуйте посмотреть, что получится: 'text.toString(). Replace (/. (? =. {4})/g, 'X')' – akazemis

ответ

2

Дайте это попытаться посмотреть, что идет вверх:

text.toString().replace(/.(?=.{4})/g, 'X') 
Смежные вопросы