템플릿을 표시하거나 숨기고 싶습니다. 그래서 나는 지시문을 사용하여 이것을 달성 할 것입니다.
한 템플릿의 코드 아래.
<div resupload ng-if="resuploadvisible"></div>
아래와 같이 닫기 버튼을 클릭하면 지시문에서 resuploadvisible 값을 false로 변경했습니다.
scope.cancelupload = function () {
scope.resuploadvisible = false;
};
scope.openupload = function () {
scope.resuploadvisible = true;
};
resuploadvisible 이 false로 설정된 경우에도 팝업 div가 닫히지 않습니다 .
Intresting은 ng-if 를 ng-show 팝업으로 변경하면 div가 문제없이 열리고 닫히는 것입니다.
이 이상한 행동은 무엇입니까? 간단히 설명해주세요.
미리 감사드립니다.
이 ngIf
지시문은 {expression}을 기반으로 DOM 트리의 일부를 제거하거나 재생성합니다.
ngIf
범위를 사용하여 요소가 제거 되면 요소가 복원 될 때 새 범위가 생성됩니다.
내 ngIf
에서 생성 된 범위 는 프로토 타입 상속을 사용하여 부모 범위에서 상속됩니다.
이것의 중요한 의미 는 범위에 정의 된 자바 스크립트에 바인딩하는 ngModel
데 사용되는 경우 입니다 . 이 경우 자식 범위 내에서 변수를 수정하면 부모 범위의 값이 재정의 (숨기기)됩니다.ngIf
primitive
parent
문제를 해결하려면을 사용 $parent
하여 상위 범위의 속성에 액세스하세요.
<div resupload ng-if="$parent.resuploadvisible"></div>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다