2014-03-05 2 views
1

내 응용 프로그램에서, 나는 어떤 시점에서 $(element).contents()을 통해 매우 큰 HTML 블록의 저장된 상태를 만들고 있습니다 (필요한 경우 $(element).html()을 사용할 수 있음). 복잡한 지시문 정보가 들어있는 블록을 다시 각도로 변환하려면 어떻게해야합니까? 요점은 반복 반복을 피하는 것이 었습니다. 그러나 그것을 편집하지 않으면, 내 안에서 각성주의의 모든 기능을 잃어 버립니다. 여기에 HTML 문자열이 상대적으로 같은 모습의 작은 예입니다저장된 각도 HTML 복원

<div ng-controller='fruits'> 
    <div class="dtable"> 
     <!-- ngRepeat: fruit in fruitCollection track by fruit.id --> 
     <div ng-repeat="fruit in fruitCollection track by fruit.id" class="ng-scope drow selected" ng-class="fruit.selected && 'selected'"> 
      <div class="idx ng-scope dinline">1</div> 
      <div class="name ng-scope dinline hilight">Apple</div> 
      <div class="info ng-scope dinline">Red</div> 
     </div> 
     <!-- end ngRepeat: fruit in fruitCollection track by fruit.id --> 
     <!-- ngRepeat: fruit in fruitCollection track by fruit.id --> 
     <div ng-repeat="fruit in fruitCollection track by fruit.id" class="ng-scope drow" ng-class="fruit.selected && 'selected'"> 
      <div class="idx ng-scope dinline">2</div> 
      <div class="name ng-scope dinline">Orange</div> 
      <div class="info ng-scope dinline">Orange</div> 
     </div> 
     <!-- end ngRepeat: fruit in fruitCollection track by fruit.id --> 
    </div> 
    <h3>Filters</h3> 
    <div class="controls dtablev"> 
    <!-- ngRepeat: filter in filterCollection --> 
     <div class="ng-scope checked" ng-click="toggleSelection(filter)" ng-class="filter.checked && 'checked'">Red</div> 
    <!-- end ngRepeat: filter in filterCollection --> 
    <!-- ngRepeat: filter in filterCollection --> 
     <div class="ng-scope" ng-click="toggleSelection(filter)" ng-class="filter.checked && 'checked'">Orange</div> 
    <!-- end ngRepeat: filter in filterCollection --> 
    </div> 
</div> 

노골적 재 삽입 HTML하는 것은 훌륭하지만 당신은 아무것도 클릭 할 수 없습니다. 나는 이것을 처리 할 수있는 작은 비밀 비트가 $compile이되기를 바라고 있습니다.

+0

내부에 복잡한 지시문 정보가 포함되어있는 경우 해당 블록을 다시 각도로 변환하려면 어떻게해야합니까? 나는이 부분을 얻지 못했다. 포스트 컴파일 된 html의 일부를 다시 찾고 있습니까? – madhured

+0

그럴 수 있다고 생각하지 않습니다. '{{}} '을 사용하여 생성 된 바인딩은 모두 손실됩니다. 다시 추가하고 컴파일하면 모델을 html 템플릿에 바인딩하는 것과 동일합니다. 그렇다면 왜이 모든 것을 통과해야할까요? – Chandermani

+0

보다는 html 블록을 다시 만들면됩니다. plz은 템플릿과 관련 데이터를 자바 스크립트 모델로 저장하고 필요할 때마다 다시 렌더링합니다. – harishr

답변

0

페이지에 HTML을 다시 추가 한 후 루트 요소에서 $compile 서비스를 사용해야합니다.

$compile(element)($scope);