2016-10-18 5 views
1

JavaScript APIを使用してJSONスキーマからhtml要素を作成しています。 jsonスキーマに合格すると、それはwidget html要素オブジェクトを返します。双方向データバインディングの場合、Angular2でsetAttributeを設定します。

ウィジェットは、tagName、idを含むHTML DOMオブジェクトです。だから私はこのために私は

widget.setAttribute( "[(ngModel)]"、 "モデル")using-ています、DOMオブジェクトに[(ngModel)]が含まれている2つの結合データのため、

しかし、私がエラー - 与えている

[(ngModelは)]」の有効な属性名

インサイド@NgModuleないが、私はすでに含まれているBrowserModuleとFormsModule

+0

いくつかのコードを投稿してください。私には、「setAttribute()関数を使用して双方向データバインディングを適用するにはどうしたらいいでしょうか」ということは完全にはわかりません。おそらく 'BrowserModule'(または' CommonModule')と 'FormsModule'を現在のモジュールの' imports'に追加する必要があります。 –

+0

@GünterZöchbauerthnx返信用、私は更新の質問 – deen

答えて

1

アングル・バインディングとコンポーネント/ディレクティブのインスタンス化はマークアップに対してのみ発生コンポーネントテンプレート[]または()は、Angular2によってDOMに追加されることはありません。Angular2は、他の方法でDOMに追加されても構いません。 DOMにHTMLを追加する前に、バインディングをAngularで処理します。

ViewContainerRef.createComponent()を使用してDOMに動的にコンポーネントを追加/削除する方法はありますが、それだけです。 (例についてはAngular 2 dynamic tabs with user-click chosen componentsを参照してください)

+0

を持っています。私はDOMオブジェクトを返すどのJavaScript APIを使用していても、バインディングはできません。 – deen

+0

正確です。バインディングを動的に追加/削除することはできません。回避策は、実行時にコンポーネントを作成し、そのようなコンポーネントを追加することです。実行時に作成されたコンポーネントは、新しいバインディングを導入できます。たとえば、http://stackoverflow.com/questions/40060498/angular-2-1-0-create-child-component-on-the-fly-dynamically/40080290#40080290 –

+0

もう1つ質問がありますが、DOMを取得できますかあなたが共有しているコード例からのオブジェクト参照? – deen

関連する問題