1

이것은 각도를 학습하는 동안 실행 한 일반적인 문제입니다.요소에 ID 또는 클래스 (각도)가있는 경우 지시문 적용

특정 이름의 요소와 ID, 클래스 또는 기타 속성이있는 특정 요소에서만 작동하는 지정 문을 어떻게 작성 하시겠습니까? 또는 ID, 클래스 또는 기타 속성에 따라 다른 작업을 수행하는 지시문을 어떻게 만들 수 있습니까?

나는 지시어를 클래스로 생성하는 유형을 의미하지 않으며 단지 ngClass을 사용합니다. 예를 들어 ... 사용자가 HTML의 일부를 정의하고 그것을 만질 수없는 시나리오를 상상해보십시오. 그러나 iul과 li이 포함 된 nav 태그가있을 것입니다. 페이지의 다른 탐색 태그에 영향을주지 않고 id="navi"의 nav 태그에 적용 할 수있는 지시문을 만들려면 어떻게해야합니까?


분명히하기 위해, 나는 jQuery를 배경에서 오는, 그래서 나는 롤 나쁜 습관을 많이 잊다하려고 해요. 저는 어떤 요소를 선택하는 개념이나 $을 통해 요소 집합을 익히고 어떤 종류의 조작을 적용하거나 무엇이 있는지 익숙합니다. HTML의 일부를 직접 만질 수없는 시나리오에서 이러한 유형의 기능을 선택적으로 필터링 할 수 있습니까?

답변

2

elementlink 기능 내의 해당 요소의 속성에 액세스 할 수 있습니다. 예에 관한 사례 <nav id="navi"> 사례 :

<nav my-directive id="navi"></nav> 

지시 시간! 당신이 볼 수 있듯이

.directive("myDirective", [function() { 
    return { 
     restrict: "A", 
     link: function(scope, elem, attrs) { 
      if (elem[0].id == "navi") { 
       //apply specific condition to elem here 
      } 
     } 
    } 
}]); 

, 당신은 링크 기능 내에서 element의 특정 속성을 확인할 수 있습니다. attrs은 모든 요소 속성도 가진 객체입니다.

+0

elem [i]을 사용하고 어딘가에 반복을 정의해야합니까? 또는 elem [0]은 링크 함수가 현재 반복하고있는 요소에 항상 액세스합니까? – EmmaGamma

+1

'0' 인덱스는 원시 HTML 요소에 접근하기 때문에'.id'를 호출 할 수 있습니다. -'$ (elem) .attr ("id")' jQuery 배경) -'elem'은 항상 지시어가 적용되는 요소가 될 것입니다 - 지시어를 여러개의 요소에 적용하면'elem'은 그 요소의 인스턴스가 될 것입니다 - 반복 할 필요가 없습니다 – tymeJV

관련 문제