2016-08-15 2 views
5

DOM 요소를 Aurelia 함수에 전달하려고 시도했지만 작동하지 않습니다. 이 요소가 'repeat.for'문에 없음을 확인하기 만하면됩니다. 나는 $ 자체를 사용하지만, 시도DOM 요소를 Aurelia 함수에 전달하는 방법은 무엇입니까?

<span click.trigger="passDom(d)">Pass Dom Element</span> 


export class Test { 

    passDom(d) { 
    console.log(d); 
    } 
} 

뿐만 아니라 작동하지 :

나는 분명히 정확하지 이런 식으로 뭔가를해야합니다. 이 같은

답변

5

사용 $event.target는 :

<span click.trigger="passDom($event.target)">Pass Dom Element</span> 

당신은 Aurelia Hub에 DOM 이벤트에 대한 자세한 내용을보실 수 있습니다.

특수한 $ event 속성을 사용하여 바인딩 표현식의 DOM 이벤트에 액세스하십시오.

또는, DOM 이벤트에 대한 참조를 만들고 뷰 모델에서 사용할 수 있습니다 : Aurelia Hub에서 사용할 또한

<span click.trigger="passDom()" ref="myElement">Pass Dom Element</span> 

// in view model 
export class Test { 
    passDom() { 
    console.log(this.myElement); 
    } 
} 

합니다.

ref 바인딩 명령을 사용하여 DOM 요소에 대한 참조를 만듭니다. ref 명령의 가장 기본적인 구문은 ref="expression"입니다. 뷰가 데이터 바인딩되면 지정된 표현식에 DOM 요소가 지정됩니다.

+0

감사 남자, 어떻게 든 내가 놓친 그 문서에 (: –

1

또 다른 것은 this.myElement는 VM 내에서 너무 많은 마술 인 경우에 당신이 할 수있는가 직접 기능에 대한 참조를 전달하는 것입니다 :

<span click.trigger="passDom(myElement)" ref="myElement">Pass Dom Element</span> 

// in view model 
export class Test { 
    passDom(passedElement) { 
    console.log(passedElement); 
    } 
} 
관련 문제