0

Angular 2 では、ngModel を「2 つの一方向データ バインディング」のようなものとして使用することは可能ですか?

ユーザーLinkedInからのインポートを提案として達成しようとしています。これは、フォームとともに別のモデルに投稿する必要があります。

angular docsでは、次のように述べられています。

[(ngModel)] の内部では、入力要素の値プロパティと入力イベントへの個別のバインディングを使用して、同じ結果を得ることができました。

<!--From angular.io-->
<input [value]="currentHero.firstName"
       (input)="currentHero.firstName=$event.target.value" >

[value] と (input) を 2 つの別個のデータ フローとして ngModel を使用する方法があるのではないかと考えました。つまり、インポートはユーザーモデルから作成され、会社モデルにポストされます。

以下は私のコードのスニペットです:

<div class="form-group">
    <label for="industry">Industry</label>
    <input type="text" class="form-control" 
        [value]="user.linkedIn.positions.values[0].company.industry" 
        (input)="company.industries=$event.target.value" 
        name="industry" required>
</div>

たとえば、以前のフォーム コードは次のよう になりました。

<input type="text" 
    class="form-control" 
    [(ngModel)]="company.industries" 
    name="industry" required #name="ngModel">

いくつかの typescript コード:

getCurrentUser() {
this.userService
  .getCurrentUser()
  .then(user => this.user = user)
  .catch(error => this.error = error);
}

submitted = false;
  onSubmit() { 
    this.submitted = true;
    this.companyService
      .save(this.company)
      .then(company => {
        this.company = company;
        this.goBack(company);
      })
      .catch(error => this.error = error);
  }

実際の http 要求が行われると、サーバー上のノード アプリがクラッシュします。もちろん、これは ngModel ではまったく実現できない可能性がありますが、わからないので、ここから始めます。言い換えれば... ngModel は angular 2 の 1 つのモデルのみにバインドする必要がありますか、それともデータをインポートしてこのデータを別のモデルに送信する必要があるようにカスタマイズできますか? これが理にかなっていることを願っています。

基本的に私の質問は次のとおりです: ngModel を使用してこの種のデータバインディングを行うのはスムーズな方法ですか、それとも私はこれでうまくいきますか?

また、LinkedIn からインポートすると、 「ユーザー」モデルから正しいデータを取得できます。

4

1 に答える 1

1

あなたの質問がよくわかりません。多分あなたが探している

[ngModel]="company?.industries" (ngModelChange)="company.industries = $event" 
于 2016-08-29T18:31:29.083 に答える