Как использовать значение объекта конвертера в контроллерах angularjs

У меня ниже контроллера в контроллерах angularjs

.controller('taskCtrl', ['$scope', function ($scope) {
    $scope.getRef = function () {
       return getTask();
    };

    $scope.save = function () {
          $.extend(true, getTask(), $scope.data);
    };
}])

и мой шаблон:

<tr>
  <td>
    <label class="ngTemplateTitle" > create Date</label>
  </td>
  <td>
    <input class="form-control" id="data.creationDate" type="text"ng-model="data.creationDate"/>
  </td>
</tr>

Мне нужно конвертировать и просматривать григорианскую дату в хиджры в форме. затем, после изменения значения объекта пользователем, конвертируют хиджры в григорианскую дату.

1 ответ

Вы знакомы с moment.js?

Вы можете импортировать его в свой проект (очень легкий файл) и внедрить угловой фильтр для анализа его так, как вы хотите...

что-то вроде:

angular.module('myFilters').filter('formatDateExample', function() {
var defaultFormat = "l";
return function(timestamp, format) {
    format = format || defaultFormat;
    return timestamp ? moment(new Date(timestamp)).format(format) : null;
    // when you'll call the filter from the HTML, it will parse it to gregorian date
};

});

в HTML-шаблон:

<div>{{myDateVar | formatDateExample }}</div>

или с пользовательским форматом прямо из HTML:

<div>{{myDateVar | formatDateExample: "DD/MM/YYYY, HH:MM" }}</div>

Идея состоит в том, чтобы сохранить дату в модели таким же образом, и только когда вы хотите показать ее в своем представлении, проанализируйте ее с помощью фильтра.

Другие вопросы по тегам