2016-09-22 3 views
2

자바 스크립트로 각도 2에 있습니다.각도 2와 지시문에서 현재 요소에 액세스하는 방법

지시문에서 DOM을 조작하려면 현재 요소에 액세스해야합니다.

해시 태그 (#element)와 함께이 트릭을 사용할 수 없으므로 다음과 같은 요소가 많습니다. 각자가 내 지시를받습니다.

HTML을

<p [focus]="p1.focus"></p> 
<p [focus]="p2.focus"></p> 
<!-- ... --> 

자바 스크립트

(function (app) { 

app.Focus = 
ng.core.Directive({ 
    selector: "[focus]", 
    inputs: ['focus'], 
}).Class({ 
    constructor: function() { 
     // how get access to the current element here 
    } 
}) 
})(window.app || (window.app = {})); 

당신은 내가 그것을 할 수있는 방법을 알고 계십니까?

불행하게도, 공식 문서는 자바 스크립트

+0

'this'을 사용해 보았습니까? – vinagreti

+0

'this'는 지시어를 반환하지만 DOM의 현재 요소는 반환하지 않습니다. –

+0

타이프 스크립트로 보여 드릴까요? 그것을 변환 할 수 있습니까? – micronyks

답변

1

내 실수는 자바 스크립트에서 삽입을 잊어 버렸습니다. 좋은 답변은 다음과 같습니다.

+0

당신의 문제를 해결할 수있는 답을 당신에게 표시 할 수 있습니다! – vinagreti

2

타이프 라이터 코드가 당신을 도울 수 있다면 내가 자바 스크립트에서이 코드를 작성하는 방법을 알고 있지만하지 않는 매우 분명하지 않다.

+0

다음은 순수 JS를 사용하는 몇 가지 팁입니다. https://angular.io/docs/js/latest /quickstart.html – vinagreti

+0

@vinagreti 고마워요.하지만 문제는 내가 JS를 계속하고 싶지 않다는 것입니다. – micronyks

+1

고맙습니다. @micronyks. 타이프 스크립트 버전을 보니 의존성 주입이 나에게 떠오른다. –

0

나는이 자바 스크립트를 사용하여 활성 테마의 CSS 파일을 변경합니다. 어쩌면 당신은 이것을 적응시킬 수 있습니다 :

var KetoApp = { 
    changeTheme: function(event, element) { 
     var theme = $(element).data("theme"), 
     themeLink = $('link[href$="theme.css"]'), 
     newThemeURL = 'node_modules/primeng/resources/themes/' + theme + '/theme.css'; 

     themeLink.attr('href', newThemeURL); 
     event.preventDefault(); 
    } 
}; 
관련 문제