2016-11-02 2 views
0

내 문제는 내 각도 명령문을 JavaScript 함수로 전송하는 방법입니다. 벤은 어떤 성공이라도없이 약한자를 찾고 있습니다.Vanila의 변형 각도 명령

저는 고용주와 기밀 유지 계약을 맺었으므로 제 코드를 공유 할 수는 없지만 그 질문은 쉽게 이해할 수 있다고 생각합니다.

어떤 조언을 해 줄 수 있습니까?

간단한 예를 들자면, 초보자도 할 수있는 것처럼 명확하게하려고합니다. 내가하고 싶은 무엇

app.directive('helloWorld', function() { 
    return { 
    restrict: 'AE', 
    replace: true, 
    template: '<p style="background-color:{{color}}">Hello World', 
    link: function(scope, elem, attrs) { 
     elem.bind('click', function() { 
     elem.css('background-color', 'white'); 
     scope.$apply(function() { 
      scope.color = "white"; 
     }); 
     }); 
     elem.bind('mouseover', function() { 
     elem.css('cursor', 'pointer'); 
     }); 
    } 
    }; 
}); 

이 같은 것입니다 :

function directiveWraper(scope, elem, attrs){ 
app.directive('helloWorld', function() { 
    return { 
    restrict: 'AE', 
    replace: true, 
    template: '<p style="background-color:{{color}}">Hello World', 
    link: function(scope, elem, attrs) { 
     elem.bind('click', function() { 
     elem.css('background-color', 'white'); 
     scope.$apply(function() { 
      scope.color = "white"; 
     }); 
     }); 
     elem.bind('mouseover', function() { 
     elem.css('cursor', 'pointer'); 
     }); 
    } 
    }; 
}); 
} 

그래서 내가 자바 스크립트 함수에 지시를 포장하고 싶은, 전혀 풀

는 지침입니다 그 함수의 params.

+2

나는 실제로 귀하의 질문을 이해하지 못했습니다. 나는 사람들에게 더 많은 것을 알릴 필요가 있다고 생각한다. 일반적으로 지시어는 모듈의 지시어에 제공하는 javascript 함수 일뿐입니다. 어쩌면 작은 코드로 실제 코드를 다시 작성하여 질문에 추가해야합니다. 그러면 사람들이 도울 수 있습니다. – Tobi

+0

희망이 있지만 더 나은 예제, 또는 더 읽기 쉽게 생각할 수 없습니다. Angular를 처음 접했을 때 JavaScript에이 문제를 적용하려는 이유 중 하나입니다. –

+0

런타임에 지시문을 추가하는 방법을 묻는 중입니까? 그렇다면이 답변을 [AngularJS에 동적으로 지시문을 추가] (http://stackoverflow.com/a/15279343/691711) – zero298

답변

0

그래서 나를 찾고있는 것처럼 보이는데 DOM 요소를 사용하고 id (DOM 조작, 스타일 또는 다른 것)에 변경 사항을 적용하는 기능입니다. 각 지시자가하는 것은 돔에 대한 변경 사항을 컨테이너로 감싸는 것일뿐입니다.

angle.js를 사용하고 싶지 않다면 코드를 작성하는 것이 가장 좋은 방법은 달성하고자하는 것에 대한 jQuery가 될 것입니다. 실제로 지시어가 사용하는 것은 가벼운 버전의 jQuery이다.

당신이 링크 기능에서 모든 것을 가지고와의 jQuery 같은 객체 ELEM 교체이기 트릭을 어떻게해야

:

var $elem = $(".myclass"); 
$elem.bind('click', function() { 
    $elem.css('background-color', 'white'); 
    //do something else onclick 
}); 

$elem.bind('mouseover', function() { 
    $elem.css('cursor', 'pointer'); 
}); 

당신은 좀 더 변경해야 할 수도 있지만이 당신을 올바른 길로 인도해야합니다. 또한 문서를로드 한 후이 코드를 호출하여 찾고자하는 요소가 DOM에 있는지 확인할 수 있습니다.

$.ready(function(){ 
    //..do stuff in here after the document.ready event fired 
}); 
+0

아플 즉시 시도해주세요, tnx @ 토비 –

관련 문제