2016-10-18 4 views
1

JavaScript API를 사용하여 JSON 스키마에서 html 요소를 만듭니다. json 스키마를 통과하면 위젯 html 요소 객체가 반환됩니다.양방향 데이터 바인딩을 위해 Angular2로 setAttribute 설정

위젯은 tagName, id가 포함 된 HTML DOM 개체입니다. 따라서 두 데이터 바인딩에 대해 나는이 내가이 일 아민을 오전, DOM 객체로 [(ngModel)]을 포함해야

widget.setAttribute ("[(ngModel)]", "모델");

그러나 나를 오류 -주고

[(ngModel)]를 '유효한 속성 이름

내부 @NgModule 아니라, 이미 포함했다 BrowserModule 및 FormsModule

+0

일부 코드를 게시하십시오. 나에게 "setAttribute() 함수를 사용하여 양방향 데이터 바인딩에 [ngModel]을 적용하고 싶다"는 것은 무엇을 의미하는지 완전히 불분명합니다. 현재 모듈의'imports'에'BrowserModule' (또는'CommonModule')과'FormsModule'을 추가해야 할 것입니다. –

+0

회신을 위해 @ GünterZöchbauer thnx, 업데이트 질문이 있습니다. – deen

답변

1

각형 바인딩 및 구성 요소/지시문 인스턴스화는 에만 발생하며 마크 업에는 이 정적으로 추가되었습니다. 구성 요소 템플릿. [] 또는 ()은 Angular2로 DOM에 추가되지 않으며 Angular2는 다른 방법으로 DOM에 추가되는 것을 신경 쓰지 않습니다. DOM에 HTML을 추가하기 전에 바인딩을 Angular로 처리합니다.

ViewContainerRef.createComponent()을 사용하여 DOM에 동적으로 구성 요소를 추가/제거하는 방법이 있지만 그게 전부입니다. (예를 들어 Angular 2 dynamic tabs with user-click chosen components 참조)

+0

DOM 개체를 반환하는 자바 스크립트 API는 무엇이든지 바인딩에 사용할 수 없습니까? – deen

+0

정확합니다. 바인딩을 동적으로 추가/제거 할 수는 없습니다. 해결 방법은 런타임에 구성 요소를 만들고 그러한 구성 요소를 추가하는 것입니다. 런타임에 생성 된 구성 요소는 새로운 바인딩을 도입 할 수 있습니다. 예를 들어보십시오 http://stackoverflow.com/questions/40060498/angular-2-1-0-create-child-component-on-thefly-dynamically/40080290#40080290 –

+0

질문이 하나 더 있습니다. DOM을 가져올 수 있습니까? 공유 한 코드 예제에서 객체 참조? – deen

관련 문제