AngularJS ng-grid Формат телефона
Надеясь, что это будет что-то, с чем кто-то столкнется, используя ng-grid
компонент для отображения данных.
Одним из столбцов является номер телефона. Есть ли более простой способ отформатировать телефон как (123)-123-1234.
ng-grid
код выглядит так,
$scope.gridOptions = { data:'records',
enableRowSelection:false,
filterOptions: $scope.filterOptions,
columnDefs:[
{field:'phoneNumber', displayName:'Phone', width:80}
]};
2 ответа
Решение
Вот одно из решений, которое сработало. информация "row.getProperty(col.field)|phoneNumber", "phoneNumber " появляется в строке JSON. Код в контроллере идет примерно так для колонки
$scope.gridOptions = { data:'records',
enableRowSelection:false,
filterOptions: $scope.filterOptions,
columnDefs:[
{field:'phoneNumber', displayName:'Phone', width:80,cellTemplate:'<div class="ngCellText" ng-class="col.colIndex()"><span ng-cell-text>{{row.getProperty(col.field)|phoneNumber}}</span></div>'}}
]};
В HTML-файле приведен следующий фрагмент кода.
<div id="controller" data-ng-controller="controller">
<div class="gridStyle" ng-grid="gridOptions" width="100%"></div>
</div>
<script type="text/javascript" src="/common/PhoneFormat.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.js></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular-resource.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular-touch.js"></script>
<script type="text/javascript" src="/common/ng-grid.js"></script>
Замените}, в конце поля номера телефона следующим
, cellTemplate: " ({{row.getProperty(col.field).substr(0, 3)}}) {{row.getProperty(col.field).substr(3, 3)}} - {{row.getProperty(col.field).substr(6,4)}}"