2013-12-17 4 views
5

AngularJS를 사용하여 내보기의 DOM을 쿼리하려고합니다. 나는 'top'의 값을 갖는 'data-placement'속성을 갖는 모든 요소들을 얻을 필요가있다. jQuery에서는 다음과 같이 처리합니다.AngularJS - 속성 값으로 요소 찾기

var elements = $('[data-placement="top"]'); 

그러나 AngularJS로는 어떻게 해야할지 모르겠다. 누군가 이걸 어떻게하는지 말해 줄 수 있니?

감사합니다.

+1

AngularJS는이 작업을 수행하지 않습니다. jQuery가이 작업을 수행합니다. 애플리케이션에 jQuery를로드하면 작동합니다. – Abilash

+2

그건 완전히 사실이 아닙니다. 사용자 정의 지시문을 사용하면 "각도"적인 방식으로 작업을 수행 할 수 있습니다. 유스 케이스에 대한 정보를 조금 더 게시 할 수 있습니까? –

+1

각도 개발의 황금률은 컨트롤러에서 DOM을 절대로 건드리지 않는 것입니다. 그래서 몇 가지 질문으로 귀하의 질문에 대답 :이 자바 스크립트 코드를 어디에 배치하고 있으며, 이러한 요소로 무엇을 할 계획입니까? 이 코드가 커스텀 디렉티브가 아닌 다른 곳으로 간다면, 뒤로 물러나 다른 방법으로 생각하는 것이 좋습니다. –

답변

4

AngularJS에서는 컨트롤러에서 직접 DOM 조작을 수행하지 않으므로 지시문을 만들어야합니다. 지시어 내에서 원하는대로 JQuery를 사용할 수 있습니다.

어쨌든 angular.element()을 JQlite 선택기와 함께 사용할 수 있다고 생각하는 경우 여기 angular.element의 설명서를 참조하십시오.

예 :

질문에서
// find('#id') 
angular.element(document.querySelector('#id')) 
0

난 당신이 우리가 $document를 사용할 수있는 경우 특정 조건을 필요로 atrributes을 가진 요소를 찾기 위해 원하는 것을 이해합니다.

here에 대한 자세한 정보를 찾을 수 있습니다.

귀하의 요구 사항에 따라, 당신은 그것을 찾을 수 있습니다.

$document.find("[attribute-name='attribute-value')"); 

jQuery 또는 jqLite로 래핑 된 요소 개체를 반환합니다. 하지만 그것을 사용하려면 컨트롤러에 $document을 주입해야합니다. 따라서 각도 관련 작업을 계속 진행하십시오.

또 다른 접근법은 angular.element입니다.

그러나 이것은 래핑 된 원시 DOM 요소 또는 HTML 문자열이있는 요소를 jQuery 요소로 반환합니다. 그것에 대한 자세한 정보를 찾을 수 있습니다 here

첫 번째 방법을 사용하여 각도 조작을 수행 할 수 있으므로 $document을 사용하는 것을 선호합니다.