* ngIf 내의 지역 변수에 액세스

ljgw

드롭 다운이있는 primeng (각도 2) 대화 상자가 있습니다. 대화 상자가 표시 될 때 드롭 다운에 포커스를 설정하고 싶습니다. 문제는 내가 div조건부로 렌더링 된다는 것 입니다.

내 코드 :

<p-dialog (onShow)="fe.applyFocus()">
  <div *ngIf="selectedItem">
    <button pButton type="button" (click)="fe.applyFocus()" label="Focus"></button>
    <p-dropdown #fe id="reason" [options]="reasonSelects" [(ngModel)]="selectedReason" ></p-dropdown>
  </div>
</p-dialog>

이 코드에서 버튼은 잘 작동하지만 onShow () ( *ngIfdiv 외부 ) fe는 정의되지 않았다고 알려줍니다 .

내부의 지역 변수에 어떻게 액세스 할 수 *ngIf있습니까?

NightCabbage

예, 이것은 진짜 고통입니다. 안타깝게도 * ngIf가 작동하는 방식으로 인해 내부에있는 모든 것을 완전히 캡슐화합니다 (태그 포함).

이것은 ngIf가있는 태그에 또는 내부에 선언 된 모든 것이 ngIf 외부에서 "표시"되지 않음을 의미합니다.

그리고 당신은 ts에 @ViewChild를 넣을 수 없습니다. 처음 실행할 때 그것이 존재하지 않을 수 있기 때문입니다 ... 그래서이 문제에 대한 두 가지 알려진 해결책이 있습니다 ...

a) @ViewChildren을 사용할 수 있습니다. 이렇게하면 구독 할 수있는 QueryList가 제공되며, tempalte 변수가 변경 될 때마다 실행됩니다 (예 : ngIf가 켜짐 또는 꺼짐).

(html 템플릿)

<div>{{thing.stuff}}</div>
<my-component #thing></my-component>

(TS 코드)

@ViewChildren('thing') thingQ: QueryList<MyComponent>;
thing: MyComponent;

ngAfterViewInit() {
    this.doChanges();
    this.thingQ.changes.subscribe(() => { this.doChanges(); });
}

doChanges() {
    this.thing = this.thingQ.first;
}

b) @ViewChild를 setter와 함께 사용할 수 있습니다. ngIf가 변경 될 때마다 setter가 실행됩니다.

(html 템플릿)

<div>{{thing.stuff}}</div>
<my-component #thing></my-component>

(TS 코드)

@ViewChild('thing') set SetThing(e: MyComponent) {
    this.thing = e;
}
thing: MyComponent;

이 두 예제 모두 ngIf 외부에서 템플릿에서 사용할 수있는 "thing"변수를 제공해야합니다. 충돌이있는 경우 ts 변수에 템플릿 (#) 변수에 다른 이름을 지정할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

내부 클래스의 지역 변수에 액세스하는 방법

분류에서Dev

함수 내에 정의 된 전역 변수에 액세스

분류에서Dev

함수 외부의 지역 변수에 액세스

분류에서Dev

함수 외부의 지역 변수에 액세스

분류에서Dev

C # Func : 블록의 지역 변수에 액세스

분류에서Dev

한 클래스에서 다른 클래스의 지역 변수에 액세스

분류에서Dev

* ngIf, Angular 2 내부의 보간을 사용하여 로컬 템플릿 변수에 액세스

분류에서Dev

다른 함수 내부의 함수에서 PHP 액세스 전역 변수

분류에서Dev

중첩 된 네임 스페이스 내의 전역 변수에 액세스

분류에서Dev

Python Scipy는 다른 함수의 지역 변수에 액세스합니까?

분류에서Dev

리스너 내부의 typescript 액세스 전역 변수

분류에서Dev

전역 함수 내부의 환경 변수에 액세스-SwiftUI + CoreData

분류에서Dev

클로저 내의 전역 범위에서 변수에 액세스

분류에서Dev

새 프로세스 내의 스레드에서 전역 변수에 액세스 할 수 있습니까?

분류에서Dev

AngularJS : HTML 템플릿 내에서 전역 변수에 액세스

분류에서Dev

typescript의 전역 변수에 액세스 할 수 없습니다.

분류에서Dev

매핑 된 지역 내에 있지 않은 액세스

분류에서Dev

생성기 함수 내에서 지역 변수에 액세스 할 수 없습니까?

분류에서Dev

ngIf 내부 입력의 디스플레이 변화 감지

분류에서Dev

EJS 내부의 변수에 액세스

분류에서Dev

URL 내의 변수에 액세스

분류에서Dev

어셈블 : {{parseJSON}}의 전역 변수에 액세스

분류에서Dev

mail.php의 전역 변수에 액세스하는 Laravel 5

분류에서Dev

오류 : 지역 변수의 imagesLabel이 내부 클래스 내에서 액세스 할 수 있습니다; 최종 선언 할 필요가있다 (자바)

분류에서Dev

초기화되지 않은 함수의 전역 변수 값에 액세스 할 수 없습니다.

분류에서Dev

Python의 클래스 함수에서 전역 변수에 액세스

분류에서Dev

함수 내부의 전역 변수는 외부에서 액세스 할 수 없습니다.

분류에서Dev

VimL / Vimscript : 내부 함수에서 외부 함수의 지역 변수에 액세스하는 방법은 무엇입니까?

분류에서Dev

익명 스레드의 컨텍스트 내에서 지역 변수에 액세스하는 것이 안전합니까?

Related 관련 기사

  1. 1

    내부 클래스의 지역 변수에 액세스하는 방법

  2. 2

    함수 내에 정의 된 전역 변수에 액세스

  3. 3

    함수 외부의 지역 변수에 액세스

  4. 4

    함수 외부의 지역 변수에 액세스

  5. 5

    C # Func : 블록의 지역 변수에 액세스

  6. 6

    한 클래스에서 다른 클래스의 지역 변수에 액세스

  7. 7

    * ngIf, Angular 2 내부의 보간을 사용하여 로컬 템플릿 변수에 액세스

  8. 8

    다른 함수 내부의 함수에서 PHP 액세스 전역 변수

  9. 9

    중첩 된 네임 스페이스 내의 전역 변수에 액세스

  10. 10

    Python Scipy는 다른 함수의 지역 변수에 액세스합니까?

  11. 11

    리스너 내부의 typescript 액세스 전역 변수

  12. 12

    전역 함수 내부의 환경 변수에 액세스-SwiftUI + CoreData

  13. 13

    클로저 내의 전역 범위에서 변수에 액세스

  14. 14

    새 프로세스 내의 스레드에서 전역 변수에 액세스 할 수 있습니까?

  15. 15

    AngularJS : HTML 템플릿 내에서 전역 변수에 액세스

  16. 16

    typescript의 전역 변수에 액세스 할 수 없습니다.

  17. 17

    매핑 된 지역 내에 있지 않은 액세스

  18. 18

    생성기 함수 내에서 지역 변수에 액세스 할 수 없습니까?

  19. 19

    ngIf 내부 입력의 디스플레이 변화 감지

  20. 20

    EJS 내부의 변수에 액세스

  21. 21

    URL 내의 변수에 액세스

  22. 22

    어셈블 : {{parseJSON}}의 전역 변수에 액세스

  23. 23

    mail.php의 전역 변수에 액세스하는 Laravel 5

  24. 24

    오류 : 지역 변수의 imagesLabel이 내부 클래스 내에서 액세스 할 수 있습니다; 최종 선언 할 필요가있다 (자바)

  25. 25

    초기화되지 않은 함수의 전역 변수 값에 액세스 할 수 없습니다.

  26. 26

    Python의 클래스 함수에서 전역 변수에 액세스

  27. 27

    함수 내부의 전역 변수는 외부에서 액세스 할 수 없습니다.

  28. 28

    VimL / Vimscript : 내부 함수에서 외부 함수의 지역 변수에 액세스하는 방법은 무엇입니까?

  29. 29

    익명 스레드의 컨텍스트 내에서 지역 변수에 액세스하는 것이 안전합니까?

뜨겁다태그

보관