2017-10-17 4 views
0

角度4でtypescriptからhtmlへの入力要素を作成しようとしています。しかし、私が入力しようとすると、[(ngModel)]は動作しません。どのように私はその方法を行うのですか?誰か知っている?document setAttribute ngModel Angular

createElement() { 
    this.input = document.createElement('input'); 
    this.input.setAttribute('matInput', ''); 
    this.input.setAttribute('placeholder', 'Tema'); 
    this.input.setAttribute('[(ngModel)]', 'module.theme'); 
    this.input.setAttribute('name', 'theme'); 

    return (<HTMLDivElement>(document.getElementById('ejemplo').appendChild(this.input))); 
    } 

答えて

1

this.input.setAttribute('[(ngModel)]', 'module.theme'); 

ような何かが動作するようになっていません。 プロパティ/属性のバインディングとコンポーネント/ディレクティブのインスタンス化は、コンポーネントテンプレートに静的に追加されたマークアップに対してのみ発生します。

動的に追加されても効果はありません。 これが必要な場合は、実行時にコンポーネントを作成してコンパイルし、そのコンポーネントを動的に追加することができます(静的に定義されたViewContainerRef)。

また、命令コードを使用してDOMを更新することもできます。