2015-08-12 3 views
2

Доступ общий формат даты:Централизация формат даты в AngularJS

{{ dateValue | date:{{dateFormat}} }} 

Услуга:

app.service('formatting', function() { 
     var format = new Object(); 

     format.dateFormat = 'medium' 

     var getDateFormat = function(){ 
      return format.dateFormat; 
     }; 

     return { 
     getDateFormat : getDateFormat 
     }; 

    }); 

Но я не думаю, что доступ формат даты, таким образом, является законным?

Как централизовать формат даты, поэтому его можно использовать на нескольких страницах просмотра?

Update:

Вот скрипка Пытаюсь:

http://jsfiddle.net/DG24c/99/

скрипку ЦСИ:

html : 
<div ng-app="myApp"> 
    <div ng-controller="farmController"> 
     <div>{{ cTime | dateFormat }} 
    </div> 
    </div> 
</div> 


javascript : 

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

myApp.controller("farmController",function($scope){ 
    $scope.cTime = 1439396762286; 
}) 

myApp.service('formatting', function() { 

     var getDateFormat = function(){ 
      return 'medium' 
     }; 

     return { 
     getDateFormat : getDateFormat 
     }; 

    }); 


myApp.filter('dateFormat', function($filter, formatting) { 

     return function(date) { 
     return $filter['date'](date, formatting.getDateFormat()) 
     } 

    }) 

ответ

3

Создать новый фильтр myDateFormat, который будет использовать ваш сервис и dateFilter. (Проверьте AngularJS - convert dates in controller, например, как использовать фильтр даты в контроллер или фильтр или услуги и т.д.)

Вы будете использовать его в качестве

{{ dateValue | myDateFormat }} 

И пример фильтра будет:

app.filter('myDateFormat', function($filter, formatting) { 

    return function(date) { 
    return $filter('date')(date, formatting.getDateFormat()) 
    } 

}) 

JSFIDDLE : http://jsfiddle.net/pwhnaxd7/

+0

см. Обновление, похоже, не работает, спасибо –

+0

@ blue-sky это была опечатка, '$ filter ('date')' not '[]' – vittore

+0

Это должно быть отмечено как правильный ответ. – Martin