AngularJs에 숨겨진 가시성?


80
<button id="tagBtnId" name="TagsFilter" ng-show="disableTagButton">Tags</button>

ng-show 적용 display: none또는 display: block재산 그러나 나는 적용 visibility: hidden하고 visibility: visible재산.

답변:


75

다음과 같이 ng-class또는 ng-style지시문을 사용할 수 있습니다.

ng-class

이것은 true 일 myclass때만 버튼 에 클래스 를 추가 하고, false disableTagButton일 때 버튼에서 제거합니다.disableTagButtonmyclass

표현식 전달 ng-class은 공백으로 구분 된 클래스 이름, 배열 또는 부울 값에 대한 클래스 이름 맵을 나타내는 문자열 일 수 있습니다.

1-공백으로 구분 된 클래스 이름

.. ng-class="{strike: deleted, bold: important, red: error}".. 

2-배열

.. ng-class="[style1, style2, style3]".. 

style1, style2 및 style3은 CSS 클래스입니다. 자세한 내용은 아래 데모를 확인하세요.

2-표현

.. ng-class="'my-class' : someProperty ? true: false".. 

경우에 someProperty존재 한 후 추가 .my-class다른 제거합니다.

의 css 클래스 이름 ng-class이 대시로 구분 된 경우 .. ng-class="'my-class' : ..다른 것과 같이 문자열로 정의해야합니다... ng-class="myClass : ..

ng-class 데모

<button id="tagBtnId" name="TagsFilter" ng-class="{'myClass': disableTagButton}">Tags</button>

<style>
   .myClass {
       visibility: hidden
    }
</style>

ng-style

표현식 은 키가 CSS 스타일 이름이고 값이 해당 CSS 키에 해당하는 값인 객체에 [ng 스타일 평가를 전달합니다 ][2].

전의:

.. ng-style="{_key_ : _value_}" ...=> 속성 값 _key__value_설정하는 동안 css 속성 입니다. 예 =>.. ng-style="{color : 'red'}" ...

다음과 같은 것을 사용하는 것이 background-color객체의 유효한 키가 아니라면 .. ng-style="{'background-color' : 'red'}" ...ng-class 와 동일 하게 인용해야합니다 .

<button id="tagBtnId" name="TagsFilter" ng-style="disableTagButton">Tags</button>

그럼 당신 disableTagButton

$scope.disableTagButton = {'visibility': 'hidden'}; // then button will hidden.

$scope.disableTagButton = {'visibility': 'visible'}; // then button will visible.

을 변경하여 버튼의 가시성을 변경할 수 있습니다 $scope.disableTagButton.

또는 인라인 표현식으로 사용할 수 있습니다.

ng-style="{'visibility': someVar ? 'visible' : 'hidden'}"

someVar에 true의 가시성 세트로 평가 visible에 그렇지 가시성 설정 hidden.


"visibility : visible"을 어떻게 변경했는지. 이를 위해 새 수업을 만들어야합니까?
chirag 2014

변수를 false로 설정하면됩니다. 이렇게하면 클래스가 제거됩니다
Michael

설정 disableTagButtonfalse자동으로 클래스 myClass다음 버튼에서 제거됩니다 visibility: hidden제거합니다
Kalhan.Toress

디스플레이 설정 방법 : 참 거짓 조건없이 차단? ng-style = "{"someDivId ", 'display': 'block'}"처럼. js가 아닌 html에서 이것을하고 싶습니다.
Milee

50

사용할 수 있습니다 ng-style. 간단한 예 :

<div ng-style="{'visibility': isMenuOpen?'visible':'hidden'}">...</div>

런타임에 스타일이 변경되면 isMenuOpen변경됩니다.

  • isMenuOpen입니다 사실 , 당신은 할 수 있습니다 style="visibility: visible".
  • isMenuOpen입니다 거짓 , 당신은 할 수 있습니다 style="visibility: hidden".

디스플레이 설정 방법 : 참 거짓 조건없이 차단? ng-style = "{"someDivId ", 'display': 'block'}"처럼. js가 아닌 html에서 이것을하고 싶습니다.
Milee

1
@Milee 그것은 html에 있습니다. 예 :<div ng-style="{'visibility': isMenuOpen?'visible':'hidden'}">...</div>
AlikElzin-kilaka

당신은 쓸 수 있습니다 : ng-style="{visibility: isMenuOpen?'visible':'hidden'}" 따옴표는 복합어에만 유용합니다. 그렇지 않으면 따옴표없이 구성된 css 속성에 CAML 구문을 사용할 수 있습니다.
maliness

15

다음은 표시 여부를 숨김 또는 표시 (축소는 아님)로 설정하는 간단한 지시문입니다.

.directive('visible', function() {

    return {
        restrict: 'A',

        link: function(scope, element, attributes) {
            scope.$watch(attributes.visible, function(value){
            element.css('visibility', value ? 'visible' : 'hidden');
        });
    }
  };
})

용법:

<button visible='showButton'>Button that can be invisible</button>


나는 지시적 접근을 좋아한다.이 경우 과잉 일 수있다. 하지만 여전히 좋아합니다 :)
Raz0rwire 2015 년

2
Angular 팀은 ng-visible지시문을 추가해야 합니다.
iheartcsharp

12

또는 부트 스트랩을 사용하는 경우 invisible클래스를 사용하십시오.

ng-class='{"invisible": !controller.isSending}'

부트 스트랩을 사용하는 사람들을위한 가장 간단하고 우아한 솔루션입니다.
Souhaieb Besbes

2

귀하의 경우에는 ngClass 또는 ngStyle을 사용해야 합니다.

<button id="tagBtnId" name="TagsFilter" 
    ng-class="{'button-hidden':!disableTagButton}">Tags</button>

그리고이 CSS :

.button-hidden{
   visibility: hidden;
}

1

태그가 html 페이지에서 렌더링되지 않으면 ng-if를 사용하지 않는 이유 . 나는 이것을 사용한다고 생각합니다.

<button id="tagBtnId" name="TagsFilter" ng-if="disableTagButton">Tags</button>

3
이는 display; none과 유사하지만 필수 스타일은 visible : hidden입니다. 동일하지 않습니다.
Yury Kozlov

가시성을 숨김으로 설정하고 요소가 html에 나타나지 않아야하므로이 ng-if 기능을 원했습니다. 완벽한 솔루션.
Kiran Chaudhari 2020 년

1

https://docs.angularjs.org/api/ng/directive/ng를 참조 하십시오 . .ng-hide 재정의에 대한 섹션 표시

필요한 것은 클래스 hg-hide-animate를 요소에 할당하는 것입니다.

/* style your element(s) at least for selector.ng-hide */
/* in this case your selector is #tagBtnId */
#tagBtnId.ng-hide {
  /*visibility:hidden;*/
  opacity: 0;
  transition: opacity 1s ease-in;
}
#tagBtnId {
  /*visibility:initial;*/
  opacity: 1;
  transition: opacity 1s ease-out;
}

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.