2014-09-17 7 views
0

Это мой выбор и варианты должны быть в формате гггг/мм/дд, но они не являютсяУгловые пользовательские фильтры - форматирование даты вопроса

<select ng-model="date" ng-options="row.Triage_x0020_start_x0020_date as row.Triage_x0020_start_x0020_date for row in rows | jsonDate:'yyyy/MM/dd'| unique:'Triage_x0020_start_x0020_date'"> 

- выберите тему -

Это мой список, который отображает правильно row.Triage_x0020_start_x0020_date

<ul> 
    <li ng-repeat="row in rows | filter:businessUnit | filter:topic | filter:date"> 
    <p>{{row.ID}}</p> 
    <p>{{row.BusinessUnit}}</p> 
    <p>{{row.Topic}}</p> 
    <p>{{row.Triage_x0020_start_x0020_date | jsonDate:'yyyy/MM/dd'}}</p> 
    </li> 
</ul> 

Это мой список, который является фильтром, который преобразования JSON строки объекта Date.

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

myApp.filter('jsonDate', function ($filter) { 
    return function (input, format) { 
     return $filter('date')(new Date(input), format); 
    }; 
}); 


myApp.controller('RowsListCtrl', function ($scope) { 
    $scope.rows = myJSON; 
}); 

Вопрос почему фильтр не работает в некоторых> Параметры и отображение 2014-04-02 18:00:00 снабжать струной, тетивой и т.п.

+0

вы можете посмотреть в [momentjs ФИЛТР эр] (http://jsfiddle.net/plantface/mjf65wtp/). –

+0

По-прежнему не работает. Кроме того, фильтр momentjs очень похож на jsonDate. – Dalli

ответ

2

вы должны преобразовать дату отметку времени в фильтре

app.filter('jsonDate', ['$filter', function ($filter) { 
    return function(input, format) { 
    return $filter('date')(new Date(input).getTime(), format); 
    }; 
}]); 

Но формат даты 2014-04-02 18:00:00 не будет работать в Safari и Firefox при использовании new Date(), вы можете ссылаться на here

+0

Спасибо за вашу помощь, но это тоже не работает. В ul li все равно работает отлично, но в вариантах нет. – Dalli

Смежные вопросы