2016-09-21 17 views
0

私はcookbookのチュートリアルの後にフォームを動的に作成しました。入力を変更するときにキャッチしたいので、(change)イベントを追加してparamとして呼び出すようにしてください。イベントを入力角度2の動的フォームに追加する

new TextboxQuestion({ 
    key: 'test', 
    label: 'Test ', 
    type: 'text', 
    onChange: 'test()', 
    order: 0 
    }) 

おかげ

答えて

2

のようなもの、あなたが動的にこのフォームを作成しているので、あなたはそれゆえ、あなたのコントローラでそれにアクセスできる必要があります。角2は、FormControlのコンセプトを使用しています。これは、フォームコントロールとのやりとりをするための非常に強力なツールです。私は細部の多くをスキップしますが、私は物事のカップルを指摘します:

あなたはFormControl.valueChangesへのアクセスを持って、FormControlはAbstractControlから継承するため、そのドキュメントから明らかではないかもしれませんは、非常に有用な機能を提供するスーパークラスであり、その多くはAngular 1フォーム機能に非常に似ています。

あなたが探しているのは、観測点です。あなたがそれらに慣れていないなら、あなたはそれらについて読むべきです。 Christoph Burgdorf has a great article on them実際、あなたの都合の良いことに、FormControl.valueChangesを使用例の一部として使用します。ああ、それは素敵な一日です!

しかし、基本的には、一言で言えば、あなたはこれらの線に沿って何かを探している:

this.textboxControl.valueChanges.subscribe(value => { 
    //... do your stuff here with 'value' 
}); 

これは明らかに、あなたが反応するように希望しているフォームコントロールのインスタンスを持っていることを前提としていに。

ITはあなたのコントローラでngOnDestroy方法でUNSUBSCRIBEを観測を使用しているときという非常に重要です。そうしないと、サブスクリプションが終了し、メモリリークが発生したときにサブスクリプションがハングアップします。

関連する問題