웹 페이지에 표시 할 요소가 있습니다.이 요소는 트위터 부트 스트랩 아이콘입니다. <i class="icon-trash"></i>
입니다.AngularJS + jQuery - 지시문 내부에서 요소를 숨기거나 표시 할 수 없습니다.
페이지가로드는 아이콘 스타일로에 숨겨진 클래스를 적용하여 숨겨진 경우 :
var app = angular.module('testApp', []);
app.directive('testDir', function() {
return function(scope, iElement, iAttrs) {
iElement.customMethod({
source: function() {
//Some other statements
jQuery(".icon-trash").removeClass('hidden');
}
});
};
});
: 지금, 가장 간단한 형태처럼 보이는 지침을 만든
.hidden {
display: none;
}
이 지시문은 특성으로 입력란에 배치됩니다. 사용자가 입력 텍스트를 입력하면 지시문 함수가 실제로 호출됩니다. 그러나 아이콘이 다시 표시되지 않습니다. 즉, jQuery 코드는 함수가 호출 되더라도 숨겨진 클래스를 제거하지 않는 것처럼 보입니다 (console.log()
을 사용하여 선택). 왜 그런가?
http://stackoverflow.com/questions/14994391/how-do-i-think-in-angularjs-if-i-have-a-jquery-background/14994393#14994393 및 복합 지시문을 작성하는 대신 ng-class를 사용하는 것이 좋습니다. – ganaraj
'$ ('. icon-trash') 시도해 보라. show();' – Omar
'.show()'는 아이콘의'display' 속성을'display : inline'으로 설정합니다.실제 표시 속성은 아이콘이 렌더링되지 않으므로'display : inline-block'이어야합니다. 그러므로 디스플레이를 'none'으로 설정하는 클래스를 추가하고 제거해야합니다. – user109187