テンプレート駆動型フォーム入力の値を設定するのに問題があります。値はeditMovie
オブジェクトから取得されます。表示されたときにフォームにeditMovie値を入力し、ユーザーがeditMovieオブジェクトの一部を編集するか、そのままにすることができます。フォームの値は、[(ngModel)]
が付加されていない入力に対しては正しく設定されていますが、デフォルト値は設定されていません。次に例を示します。
_<div class="form-group">
<label for="imdb">Edit IMDb ID</label>
<input #editImdb type="text" class="form-control" name="imdb" [(ngModel)]="editReviewForm.imdb" [value]="editMovie.imdb" required="" />
<div class="mt-1" style="color:red">
*required
</div>
</div>
<div class="form-group">
<label for="trailer">Edit Youtube Trailer</label>
<input #editTrailer type="text" class="form-control" name="trailer" value="{{ editMovie.trailer }}" />
</div>
_
最初のものは機能しませんが、2つ目は機能します。 SO質問 ここ 値プロパティを次のような双方向データバインディングに入れようとしました:[(value)]
が機能しませんでした。 this SO質問__[ngValue]
_を試してみましたが、ブラウザで解析エラーが発生しました_Can't bind to 'ngValue' since it isn't a known property of 'input'
_
テンプレート駆動型フォーム入力の値をバインドする方法を誰かが知っていますか?
以下のコードを更新しました。コンポーネントコードが表示されないので、適切なバインディングを推測しました。
_<div class="form-group">
<label for="imdb">Edit IMDb ID</label>
<input #editImdb type="text" class="form-control"
id="imdb" [(ngModel)]="editMovie.imdb" required />
<div class="mt-1" style="color:red">
*required
</div>
</div>
<div class="form-group">
<label for="trailer">Edit Youtube Trailer</label>
<input #editTrailer type="text" class="form-control"
id="trailer" [(ngModel)]="editMovie.trailer" />
</div>
_
[(ngModel)]
で定義された双方向バインディングは、コンポーネントのプロパティの値を受け取り、それをデフォルトとして割り当てます。ユーザーが値に変更を加えると、その値はコンポーネントのプロパティで変更され、基本的に入力要素とコンポーネントプロパティの同期が維持されます。
また、これによれば: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label
... _label for
_は、id
プロパティではなく、入力要素のname
プロパティと一致することを期待しています。上記も変更しました。