2012-07-08 4 views
5

저는 첫 번째 AngularJS 프로젝트를 진행하고 있습니다. 나는 그것을 지금까지 사랑하지만 지금은 끊었습니다.AngularJS보기에서 jQuery 플러그인 사용

내 프로젝트는 현재 경로를 기반으로 별도의 HTML 템플리트/부분으로 채워진 index.html에서 단일 ng-view를 갖도록 구조화되어 있습니다. 내가 각도 표현식을 사용하여 템플릿에/부분 구문 분석하는 SQLite는 날짜 문자열을 서식을 jQuery DateFormat plugin을 사용하려는 부분 지문 중 하나에서

는 :

{{ find.addDate }} 

나는 플러그인을 포함 시켰습니다

{{ $.format.date(find.addDate, "dd/MM/yyyy") }} 

아니면 : 스크립트 index.html을 태그와 나는 부분/내 템플릿에 이런 일을하는 것처럼 간단 할 것입니다 거기에서 생각

{{ angular.element.format.date(find.addDate, "dd/MM/yyyy") }} 

그게 작동하지 않습니다. (분명히 여러분 중 일부는 분명합니다.) 콘솔에 오류가 없으며 접근하는 방법이 꽤 부족합니다. 나는 '제 3 자 스크립트'또는 'jquery plugin angularjs'와 같은 용어로 인터넷 검색을 수행했지만 올바른 방법으로이를 수행하는 방법에 대한 최신 코드 예제를 찾을 수 없습니다.

angular.widget을 사용하여 이전 코드를 찾았지만 1.0 이상 버전에서는 사용되지 않습니다. 나는 지시어를 사용해야한다고 생각하지만, 정확히 알 수는 없다.

정말 설명이나 간단한 예를 들어 주길 바래요. 고마워요!

답변

10

템플릿에서 {{expression}}을 (를) 수행 할 때 문제가 발생하면 현재 범위에서 템플릿을 평가합니다. 예를 들어

,이 컨트롤러가있는 경우 :

function MyCtrl($scope) { 
    $scope.find = { 
     addDate: 2030 
    }; 
} 

{{find.addDate}}$scope.find.addDate에 대한 현실의 모습에 평가 것 (2030 년 반환이 경우).

따라서 {{ $.format.date(find.addDate, "dd/MM/yyyy") }}을 시도하면 각도가 $scope.$.format.date(find.addDate, "dd/MM/yyyy")인데, 존재하지 않습니다.

해보십시오 컨트롤러의 기능을 사용하는 대신이 같은 :

function MyCtrl($scope) { 
     $scope.find = { 
      addDate: 2030 
     }; 
     $scope.formatDate = function(input, format) { 
      return $.format.date(input, format); 
     } 
    } 

그리고 당신은 당신의 HTML 당신이 할 수에서 수행 할 수 {{formatDate(find.addDate, "dd/MM/yyyy")}}.

당신은 또한 그냥 입력을 받아, 그것을 변화하기 때문에, 마크 업에서 필터로 평가할 수 : {{find.addDate | formatDate:"dd/MM/yyyy"}}

+0

나는이 일을-생각을 통해 확실히했다. 위대한 설명과 간단한 해결책을 가져 주셔서 대단히 감사합니다! – Trae

관련 문제