Как использовать значение объекта конвертера в контроллерах 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>
Идея состоит в том, чтобы сохранить дату в модели таким же образом, и только когда вы хотите показать ее в своем представлении, проанализируйте ее с помощью фильтра.