2017-09-11 6 views
1

키보드를 사용하여 md- 체크 박스에 포커스를 설정하면 그 주위에 윤곽이 나타납니다. 그러나 포커스가 프로그래밍 방식으로 설정되면 시각적 표시기가 없습니다. 같은 모양으로 보이게 할 수있는 방법이 있습니까? enter image description here모든 포커스 소스에 대해 동일한 md- 체크 박스 포커스 윤곽 설정 방법

+0

당신의 행동 방식을 보여줄 수 있습니까? 이 방법은 작동합니다 : https://plnkr.co/edit/W2UWkVuR2bjwRr196LcA?p=preview – Vega

+0

사실 저는 이것을 직접 사용하지 않고 있습니다. 설명하려고 노력할 것입니다. 거의 모든 브라우저에서 체크 박스 사이의 탭이 정상적으로 작동합니다. 파이어 폭스에서 가끔씩 체크 박스가 집중되지만 시각적 효과는 없다. 나는 DOM을 검사하고이 버그가 발생할 때 checkbox 입력이 cdk-keyboard-focused 대신 class cdk-program-focused를 할당했음을 발견 했으므로 초점이 programmaticaly로 트리거 될 때 기본 동작이라고 생각했습니다. 당신의 본보기 후에 나는 틀렸다고 봅니다. Firefox에서 이상한 행동을 일으킬 수있는 아이디어가 있습니까? 매우 큰 프로젝트의 일부이므로 코드를 제공 할 수 없습니다. –

+0

여기에 대한 업데이트가 있습니까? 제가 제공 한 답을 해봤습니까? – Faisal

답변

0

리플은 클릭/포커스 이벤트입니다. 프로그래밍 방식으로 체크 박스를 설정 한 후에 파급 효과를 얻으려면 코드에서 요소를 포커스해야합니다. 이를 위해서는 컨트롤에 대한 참조를 추가해야합니다.

템플릿에 참조 변수를 확인란에 추가하십시오. 예 : customCheckbox는 :

<md-checkbox [(ngModel)]="checked" #customCheckbox>Check me!</md-checkbox> 

... 그리고 코드에서, 당신은이 컨트롤에 focus() 메소드를 호출해야합니다 working demo

// Import MdCheckbox in your ts file 
import { MdCheckbox } from '@angular/material'; 

// Declare customCheckbox in your class 
@ViewChild('customCheckbox') private customCheckbox: MdCheckbox; 

// Use this line to focus the checkbox programmatically where you want. 
this.customCheckbox.focus(); 

링크.