2013-04-21 2 views
1

ng-repeat의 자체 버전을 구현하고 싶습니다. 하지만 어떻게 든 jquery 추가 메서드가 작동하지 않는 것 때문에 일을 얻을 수 없습니다.AngularJS에서 jquery append 메서드가 지시문에서 작동하지 않는 것 같습니다.

script.js :

var app = angular.module("app", []); 

app.directive("myRepeat", function() { 
    return { 
    restrict: 'E', 
    compile: function(element, attrs) { 
     var c = element.children()[0]; 
     console.log(c) 
     for(var i=0; i<attrs.times; i++) { 
     element.append(c); 
     } 
     return function(scope, element, attrs) { 
     $(element).click(function() { 
      console.log("hi"); 
     }) 
     } 
    } 
    } 
}) 

index.html을 :

<body ng-app="app"> 
    <my-repeat times="5"><p>hello world</p></my-repeat> 
</body> 

Code in use at plnkr.co.

+4

글을 편집했지만 다음 번에 글을 올렸습니다. SO에 코드를 게시하십시오. 코드를 읽으려면 다른 페이지로 이동하면 안됩니다. 예를 들어 답안을 작성하는 동일한 페이지에서 코드를 사용할 수 있다면 편리합니다. – timss

+0

할 것입니다. 고마워요! – lkahtz

답변

1

jquery 코드를 읽은 후 대답을 찾았습니다. Append는 DOM 요소를 추가 할 때 중복을 확인하고 제거합니다. 나는 DOM 목록에 c 포장 및로 내을위한 루프에서의 append 줄을 변경 :

element.append(c.clone()); 

그리고 문제는 사라졌다.

관련 문제