2014-07-10 6 views
0

서버의 날짜 개체가 밀리 초 형식으로 포함 된 ng-repeat를 사용하여 생성 된 목록을 필터링하려고합니다. 목록이 잘 생성하고 각 날짜로 서식을 지정하지만 필터를 사용할 때 필터가 텍스트가 아니라 밀리 초 단위로 작동한다고 가정합니다. 필터를 표시하기 전에 컨트롤러 또는 서비스의 날짜를 포맷해야합니까? 아니면이 방법이 있습니까?각형 검색 필터 및 날짜가 작동하지 않습니다.

HTML : 어떤 제안에 대한 http://plnkr.co/byQkzHSTXLHPCdU0pj3o

감사 :

여기
angular.module('dates', []); 

var DateController = function($scope) { 
    $scope.records = [{date:1403802879000, activity: "biking"}, {date:1276495200000, activity: "hiking"}, {date:1403802879000, activity: "walking"}, 
    {date:1403802879000, activity: "biking"}, {date:1276495200000, activity: "hiking"}]; 
} 

가 plunker입니다 : 여기

<!DOCTYPE html> 
<html ng-app="dates"> 

    <head> 
    <script data-require="[email protected]*" data-semver="1.3.0-beta.5" src="https://code.angularjs.org/1.3.0-beta.5/angular.js"></script> 
    <link rel="stylesheet" href="style.css" /> 
    <script src="script.js"></script> 
    </head> 

    <body ng-controller="DateController"> 

    <input type="text" class="form-control" placeholder="Search" ng-model="searchText"> 
    <p>{{dates}}</p> 
    <ul ng-repeat="record in records | filter: searchText"> 
     <li>{{record.activity}}</li> 
     <li>{{record.date | date: longDate}}</li> 
    </ul> 
    </body> 
</html> 

내 자바 스크립트입니다! 문자열에

답변

2

예는 NG-필터가 $ scope.records 배열을보고

쉬운 솔루션 (이 경우 검색 텍스트)에 입력 한 표현을 기반으로 새 배열을 반환 것, 바로 올바른 변환하는 날짜 당신의 $ 범위에요.

하드 솔루션을 사용하면 고유 한 필터 모듈을 작성할 수 있습니다. https://docs.angularjs.org/tutorial/step_09 https://github.com/angular/angular.js/blob/master/src/ng/filter/filter.js#L3

+0

이 두 나에게 허용 솔루션처럼 -이 경우 나는 것 중 하나 또는를 성능에 대해 걱정할 필요가 있지만 레코드의 말도 안되는 금액을했던 상황에서하지 않는다 다른 솔루션이 더 좋을까요? – paniclater

+1

말도 안되는 양의 레코드가 있다면 ... mongodb와 같은 데이터베이스에 보관하는 것이 좋습니다 그런 다음 searchText 모델에는 업데이트 될 때마다 일치하는 개체를 찾기 위해 http.post 요청을 수행하도록되어 있습니다 귀하의 searchText. 웹 브라우저 내에 보관할 수있는 레코드의 수에는 제한이 있으며 성능이 저하되기 전에 웹 브라우저에 표시 할 수있는 레코드의 수에 훨씬 더 작은 한계가 있습니다. 웹 브라우저에서 모든 것을 유지하면 디스플레이의 페이지를 매기고 <100 –

+1

으로 유지하는 것이 좋습니다. 응용 프로그램의 날짜로 일부 수학을 수행하지 않는 한. 형식을 문자열로 변경하고 각도에 의해 제공되는 기본 filter.js에 의존하는 것이 더 좋을 것이라고 생각합니다. 또는 함수를 통해 ms를 날짜로 변환하십시오. –

관련 문제