2014-07-14 4 views
0

AngularJS v1.2.19가 있습니다. 내 프로젝트에서 사용해 보겠습니다.AngularJS 필터가 작동하지 않습니다.

형성 날짜 필터를 만들었습니다.

var app = angular.module('commentApp', []).filter("dateformat", function ($filter) { 
    return function (input) { 
     if (input) { 
      try { 
       var date = $filter('CommentDate')(new Date(input), 'dd MMM yyyy'); 
       return date; 
      } catch (e) { 
       console.log(e); 
      } 
     } 
    } 
}); 

그리고 전화

나는 오류를 가지고있다
<time>{{comment.CommentDate|dateformat }}</time> 

필터를 의미

Error: [$injector:unpr] Unknown provider: CommentDateFilterProvider <- CommentDateFilter http://errors.angularjs.org/1.2.19/ $injector/unpr?p0=CommentDateFilterProvider%20%3C-%20CommentDateFilter

+0

'$ 필터 ('CommentDate')가 필터에 대한 코드입니다''서로를 찾을 수 각도 요구하고있다. 'CommentDate'라는 이름의'filter '를 만들고'new Date (input)','dd MMM yyyy''를 입력으로 사용합니다. 기대하고있는 e? –

+1

중복 필터가 이미 내장되어있는 이유는 무엇입니까? – charlietfl

+0

나는 한 번 이상 upvote 할 수 있으면 좋겠다 @charlietfl 님의 댓글 – glepretre

답변

0

CommentDate

var date = $filter('CommentDate')(new Date(input), 'dd MMM yyyy'); 

존재하지 서식을 날짜에 사용 각도 필터

<time>{{comment.CommentDate|date:'dd MMM yyyy'}}</time> 
+0

나는이 필터를 사용해 본다. 그러나이 코드는 작동하지 않습니다. 내가 json 날짜/날짜 (1405349956890)/ – Greg

+0

파싱 날짜를 얻었 기 때문에 http://jsbin.com/fuyeq/1/edit?html,js,output을 참조하십시오. – sylwester

+0

서버에서 사용하는 배열 및 배열 데이터를 사용합니다. $ http . – Greg

0

각도에는 의존성 주입이있다. 함수에 전달해야 할 것이 무엇인지를 아는 것은 "마법"이 아닙니다. 받아들이는 매개 변수의 이름을보고 일치하는 항목을 찾습니다. 코드가 작성된 방식 인 Angular는 CommentDateFilter 공급자를 찾고 싶다고 생각합니다 (아무도 없습니다).

여기 바로 요점 단순화 된 버전입니다 :

var app = angular.module('commentApp', []).filter("dateformat", function() { 
    return function(input) { 
     return new Date(input).toLocaleFormat('dd MMM yyyy'); 
    } 
}); 

나는 toLocaleFormat 여기 사기() - 그것은 새로운이기 때문에 모든 브라우저에서 작동하지 않습니다. 귀하의 질문은 실제로 날짜 형식에 관한 것이 아니라고 느꼈습니다. (AngularJS는 이미 매우 좋은 날짜 필터를 가지고 있기 때문에 : https://docs.angularjs.org/api/ng/filter/date. 실제 필터를 작동시키는 방법을 알고 싶었습니다. 위 예제는 당신이 원하는 것을 구축하기위한 출발점

0

여기 참조하십시오. http://jsbin.com/taqiq/1/edit

app.filter('mydate' ,function($filter){ 

    return function(input){ 
    input =input.replace(/\//g, ''); 
    var mydate = Date.parse(Date(input)); 
    return $filter('date')(mydate, 'dd MMM yyyy'); 


    }; 

}); 
관련 문제