2014-07-15 3 views
1

지시문을 작성하거나 사용자 정의 할 때 (내 지시문 또는 예 : https://github.com/dpiccone/ng-pageslide) 여러 번 표시 논리가 단일 css 클래스로 제어되는 지점이 있습니다. 이 시점에서 지시문은 단일 클래스 추가 및 제거로 이어집니다. 따라서 새 지시문을 사용하는 대신 ng-class 지시문을 사용할 수 있습니다 (여기 예제 참조 : https://gist.github.com/Hypercubed/8f40556eb0f6eddbcca3). ng-class/CSS 스타일 방식에 비해 커스텀 디렉티브 접근 방식에 이점이 있습니까? 사용자 지정 지시문은 $ animate에 의존하지 않는다고 생각하십니까? 내가 잘못하고있는거야?사용자 정의 Angularjs 지시문 대 ng 클래스

다른 지시문과 XXX 질문을 죄송합니다.

+0

지시어는 스타일이 아닌 동작을 추가하기 위해 존재합니다. 지시문 중 하나가 스타일을 추가하는 것으로 끝나면 ** 특히 ngClass 지시어를 직접 사용해야합니다. 특히 스타일이 단순한 부울 변수로 제어되는 경우에 그렇습니다. 클래스를 추가하거나 제거하는 지시어를 작성하는 것은 의미가 없습니다. 왜냐하면 이것이'ngClass'의 목표입니다. – Blackhole

+0

답장을 보내 주셔서 감사합니다. 어쩌면 그냥 의미가 있지만 슬라이딩 패널과 같은 무언가가 클래스 태그에 의해 활성화/비활성화되면 스타일이나 동작입니까? – hypercubed

+0

숨겨진 상태와 표시된 상태 사이를 전환하는 것은 동작입니다. 정말 일반적인 것이므로 실제로 AngularJS의 핵심에 대한 지침이 이미 있습니다 (https://docs.angularjs.org/api/ng/directive/ngHide).). – Blackhole

답변

1

나는 모든 털 때문에 숲을 보지 못하고 있다고 생각합니다. 아주 세밀한 부분에 집중하고 큰 그림을 놓치고 있습니다. 지시어는 단순히 스타일을 적용하는 것 이상입니다. 나는 그 모범이 최선이라고 생각한다. 예를 들어, 등급 지시어를 사용하십시오.

<div ng-rating="album.rating" max="5"></div> 

는 DOM에 다음을 추가 할 수 있습니다 그 : 당신이 성급 모델을 렌더링하기 위해 원하는 경우는 다음과 같을 수 겨 - 클래스가 사용되는 커버에서

<ul class="inline"> 
    <li ng-repeat="i in max"> 
     <i ng-class="{ 'icon-start-empty': i > rating, 'icon-star': i <= rating }"></i> 
    </li> 
</ul> 

, 그러나 그것은이다 논리의 일부만이 등급 지정 문에 캡슐화됩니다. 그것은 사용자가 등급이 얼마 남았는지를 구성 할 수 있고 같은 수의 li 요소를 렌더링합니다. 그런 다음 지시문을 작성했기 때문에 필요할 때마다이 논리를 다시 사용할 수 있습니다. ng-class를 사용하면 해당 위치에서 작동합니다. 당신이 기호를 복사하는 것과 같은 일을하고 싶다면 어쩌면 그 논리를 지시어로 감싸고 싶을 수도 있습니다.

관련 문제