2017-02-17 13 views
0

子供にデータを渡す際に問題があります。このplunkerでExcatly :子供が親変数を変更する方法

http://plnkr.co/edit/G1EgZ6kQh9rMk3MMtRwA?p=preview

@Component({ 
    selector: 'my-app', 
    template: ` 
    <input #x /> 

    <br /> 
    <child [value]="variable"></child> 

    <button (click)='test(x.value)'>Button</button> 
    `, 
    directives: [ ChildComponent ] 
}) 
export class AppComponent { 
    public variable; 


    test (x:any){ 
    console.log('test',x); 
    this.variable = x; 
    } 

} 

私は、変数を変更する私の主成分です。

私は変数に入力値を代入します。この変数は、入力を子に渡し、子は変数の新しい値を取得する必要があります。 しかしそれは起こりません。 誰かが私のミスをどこに知っていますか?

答えて

1

<input>の値を<input>要素自体に渡したくないと思います。

<child [value]="x.value"></child> 

Plunker example

+0

私は私のplunkerを変えました。私は、関数が親コンポーネントのprivateまたはlocal変数を変更するとき、なぜ子コンポーネントが変更された値を取得しないのかを知りましたか? –

+0

そうだと思います。なぜそれはないと思いますか?解決したい問題を再現するためにはどのような正確な手順が必要ですか? –

+0

私の仕事のためにコードを表示できません。 私は主なコンポーネントに配列を持っているので、この配列を子に渡します。私はそれを初期化するとき、この変数のSeetterが私に変更を記録します。 その後、私は配列にオブジェクトをプッシュするときセッターは私に変更を記録しません –

0

あなたplunkerコードが正常に動作するようです。私はちょうどこれにあなたの@inputプロパティを変更することで、結果を確認することができました:

@Input() value;

関連する問題