Я использую angularjs с ui-сеткой. Один столбец сетки содержит временную метку, которую я хотел бы отобразить как правильно отформатированную дату.Использование функции в шаблоне ячейки
До сих пор я так пробовал, но функция никогда не вызывается.
$scope.formatDate = function(date) {
return '42';
};
$scope.columns = [
{field: 'date', cellTemplate: '<div class="ui-grid-cell-contents">formatDate({{row.entity.date}})</div>'},
{field: 'title'},
{field: 'quantity'},
//[...]
];
Вместо этого вызов функции рассматривается как строковый литерал. В результате в столбце всегда отображается formatDate(*timestamp*)
.
я только нашел, не удовлетворяющий способ его достижения пути определения функции на каждую отдельную строке при приеме их:
$scope.columns = [
{field: 'getFormattedDate()'},
//[...]
];
$http.post('/api/data/').success(function (data) {
$scope.gridOptions.data = data.elements;
$scope.gridOptions.data.forEach(function(row) {
row.getFormattedDate = function() {
return '42';
}
})
});
Все лучшее предложение?
Вы пробовали [фильтр даты] (https://docs.angularjs.org/api/ng/filter/date)? – jnthnjns
не используют '{{}}' для переменных функции области – charlietfl
@Asok Да фильтр даты работает нормально. Извините, но вопрос на самом деле должен быть более общим, чем «как разобрать дату». Я хотел бы иметь возможность вызвать метод для других столбцов, который содержит нечто иное, чем даты. –