2016-11-17 2 views
7

非常に奇妙な問題が発生しました。私は、ユーザーが質問と回答を追加して編集できるポータルを持っています。この場合、セット(q + a)を削除して追加しようとすると、モデルは更新されていますが、ビューはプレースホルダから値を受け取り、それ自体を更新します。ここでは配列の値をスプライスして押し込み、ngForを使ってレンダリングしています。最後の要素はダミーで、プッシュアップされた値を入力するために使用されます。ng-reflect-modelは正しい値を示しますが、入力に反映されません。

スクリーンショットを添付すると意味があります。

テキストボックスのng-reflect-modelは正しい質問を表示しますが、要素自体にはプレースホルダテキストが表示されています。角度が適切に私の配列の要素を追跡することができませんでしたので、どうやら問題が発生していた

+0

コードを追加してください –

+0

ngForでtrackByを追加して解決しました –

+0

問題を解決したコードを追加してください。他の人が解決策を得ることができます。ありがとうございます –

答えて

8

。私はこれを非常に難しい方法で見つけました。そこで、ngForにtrackBy属性を追加するだけで、これを解決できました。

は私のコンポーネントにこれを追加しました:テンプレートで

customTrackBy(index: number, obj: any): any { 
    return index; 
} 

、その後:

<div class="margin-bottom-15" 
    *ngFor="let assessment of language.assessments; trackBy:customTrackBy"> 

だから基本的に私は、インデックスによって配列内の私の要素を追跡するために、角を求めています。それが問題を解決しました。

ここで、評価は各質問 - 回答セットのモデルです。

+0

これはおそらく私がここで読んだ最も有用な記事の1つです。あなたのコンテンツがそれを補うので、スペルにもっと注意を払う必要はないので、まれなケースだと思います。あなたはできますが:-) – peterh

+0

haha​​ ..あなたの編集Peterを感謝します。 –

関連する問題