2015-01-26 2 views
1

동적으로 HTML 양식 필드를 만드는 스크립트가 있습니다. Angular 지시문을 사용하여 데이터를 바인딩하려고합니다. HTML 요소는 동적으로 생성되기 때문에 페이지로드에 존재하지 않기 때문에 바인딩이 발생하지 않는다고 생각합니다. 다음은 내 HTML입니다.AngularJS : 동적으로 생성 된 HTML에 데이터 바인딩

<div id="form-builder-wrapper"> 
     <form class="form-horizontal" role="form" autocomplete="off"> 
      <ul class="handles"> 
       <br /> 
       <!--Dynamic HTML is being appended here with jQuery--> 
      </ul> 
      <button class="btn btn-primary m-t-20 hide" type="submit">Submit</button> 
     </form> 
</div> 

위의 양식에 내 HTML 요소를 동적으로 추가하고 있습니다. 당신이 볼 수 있듯이

<div class="form-group requiredField" id="element_1" data-type="textbox"> 
    <label for="element_label_1" class="col-sm-3 control-label" ng-bind="element_label_1">First Name</label> 
    <div class="col-sm-9"> 
     <input type="text" class="form-control" name="element_1" id="element_label_1" required=""> 
    </div> 
</div> 

, 내 label 필드에, 나는 ng-bind="element_label_1" 지시를 부착하고있다 : 여기에 추가되는 샘플 요소이다.

<p>Update Label: <input type="text" ng-model="element_label_1"></p> 

을하지만이 작동하지 않습니다 :이 코드로 label를 업데이트하려고 시도하고있다. 함께 묶는 것이 아닙니다. 내가 뭘 잘못하고 있는지 알 겠어?

+0

가장 큰 문제는 jQuery를 사용하여 각도 응용 프로그램에서 DOM에 추가하는 것입니다. html이'$ compile'을 통해 실행되지 않으면, 어떤 지시어도 초기화 할 수 없습니다. – charlietfl

+0

@charlietfl 저는 각도 newb입니다. 사용할 수있는 완전한 코드 예제를 제공 하시겠습니까? – three3

+0

@ pixixbits를 좋아합니다. 코드를 보지 않고 조금 주저합니다. 쉽게 마이그레이션 할 수 있습니다. 또는'$ compile '을 사용하기 위해 각도 범위에 액세스 할 수있는 지시문에 쉽게 입력 될 수 있습니다. 무거운 jQuery 페이지 위에 각도를 추가하려는 경우, 전혀 좋은 생각이 아닐 수도 있습니다. 개발 상태에 대한 더 나은 개요는 – charlietfl

답변

0

DOM로드 후 DOM 트리에 추가하는 경우 Angular가 수행하는 컴파일/연결 프로세스가 누락 된 것 같습니다. $ compile 서비스를 사용하여 새 요소를 수동으로 컴파일하고 링크해야합니다.

parent.append(element); 
$compile(element)($scope); 
+0

일종의 각진 newb입니다. 사용할 수있는 완전한 코드 예제를 제공 하시겠습니까? – three3

+0

하지만 정확한 해결책을 추측할만한 코드를 게시하지 않았습니다. DOM에 새 요소를 추가하는 코드를 게시하고 ngController도 포함 할 수 있습니까? – pixelbits

관련 문제