2014-10-14 3 views
1

검색되지자바 스크립트의 createElement는 각도 지침

.directive('widget', function($compile) { 
var show = function(scope, element, attrs) { 
var render = function() { 
    alert('Found '+element.attr('id')); 
    if(element.attr('id') === 'draggable_button'){ 
    alert('placing widget'); 
    element.html('<div id="widget_button" class="button button-positive" unbindable><span ng-bind="widgetname"></span></div>'); 
    $compile(element.contents())(scope); 
    } 
}; 

scope.$watch('drag', function(newValue, oldValue) { 
    alert('drag changed'); 
    if(newValue > 0) render(); 
}); 

}; 

return { 
    restrict : 'E', 
    link : show 
}; 
}) 

문제 아래 - 요소 위에 작성된 jQuery를 사용하여 작성된 함수는 각도 명령에 의해 인식되지 않습니다.
누락 된 항목을 확인하는 것이 좋습니다. 대신 document.createElement를 사용

+3

을 넣어 요소의 ID입니다 .... .. –

+0

미안하지만, 처음에는 질문에 $ 컴파일을 주석 처리했지만 질문을 수정했습니다. $ 컴파일을해도 작동하지 않습니다. $ 컴파일 문에서 뭔가를 놓쳤는가? – stackoverflowN

+0

나는 document.createElement 대신 $ compile을 사용했다. –

답변

1

은 아래와 시도 : 를 - element.id가 컴파일 $ 내용은 "NG-응용 프로그램"

var el = angular.element(document.getElementById("element.id")); 

var scope = el.scope(); 
var injector = el.injector(); 

var $compile = injector.get("$compile"); 

var mynewel = $compile("<div widget></div>")(scope) 
+0

고마워요! 나는 지금 컨트롤러를 가지고 있는데 이것을 다시 살펴볼 것이다. – stackoverflowN

+0

도움이되어서 기쁩니다. 언제든지 환영합니다. –