2

지시어에 객체의 배열을 전달하려고합니다. 지시문 안에 ngRepeat를 사용하여 전달 된 항목을 전달 된 html로 출력합니다. 이는 본질적으로 동일한 문제인 here입니다.AngularJS : 중첩 된 내용으로 지시문에 ngRepeat

컴파일 및 링크 기능을 사용하여 여러 가지 방법을 시도했지만 범위를 중심으로 내 마음을 감쌀 수는 없을 것 같습니다. petebacondarwin에서 제안 된 솔루션 - here은 작동하지만, 지시문에 배열을 전달해야합니다. 여기

내 현재의 버전입니다 - Plunker

지침

(function() { 
    "use strict"; 

    function MyDirective() { 
    return { 
     restrict: "E", 
     scope: { 
     items: "=" 
     }, 
     link: function link(scope, element, attrs) { 
     var children = element.children(); 

     var template = angular.element('<div class="item" ng-repeat="item in items"></div>'); 
     template.append(children); 

     var wrapper = angular.element('<div class="list"></div>'); 
     wrapper.append(template); 

     element.html(''); 
     element.append(wrapper); 
     } 
    }; 
    } 

    angular 
    .module("app.MyDirective", []) 
    .directive("myDirective", [MyDirective]); 

}()); 

HTML

<my-directive items="main.items"> 
    <h1>{{item.title}}</h1> 
    <p>{{item.content}}</p> 
</my-directive> 

감사

내부

답변

4

코드 지시문은 편집되지 않으므로 Angular에 "표시"되지 않습니다. 이는 코드가 중첩되지 않았기 때문에 발생하지만 코드에서 제거되고 대체됩니다.

각도로, 당신은 link의 끝 부분에 코드 줄을 추가해야합니다 "가 볼 수 있도록"하기 위해서 :

$compile(wrapper)(scope); 

이 새로운 코드 래퍼를 취할를 컴파일하고 scope에 연결

업데이트 plunkr : 설명에 대한

http://plnkr.co/edit/9w7m4m4Uo0bShokz9uRR?p=preview

+1

감사합니다. – KenavR