2017-11-27 1 views
0

コンテンツを含むdivがあり、追加ボタンがある場合は、追加ボタンをクリックすると同じコンテンツdivが表示/追加されます。複数回、それらの何度も繰り返されるdiv。これまでうまくいきましたが、いずれかのdivにデータを入力すると、同じデータが加算divに反映されます。誰も私がこの問題を解決するのを助けることができますか?私はデータをdivに入力する必要があり、ここでdivは空でなければなりません。angular2またはtypescriptを使用して入力したときのデータの繰り返しを避ける方法

HTML:

<md-card *ngFor="let position of products; let row_ind = index "> 
<div> 
    <md-input-container> 
    <input mdInput type="text" name="position.workName [(ngModel)]="workDetails.workName"> </md-input-container> 
    <md-input-container> <input mdInput type="text" name="position.workName" [(ngModel)]="workDetails.workPlace" > </md-input-container> 
</div> 
<div > 
    <md-input-container><input mdInput type="text" name="position.workName" [(ngModel)]="workDetails.workUnit"> </md-input-container> 
    <md-input-container> <input mdInput type="text" name="position.workName" [(ngModel)]="workDetails.workCountry" > </md-input-container> </md-card> 

TS:

this.products = [{ 
     "workName": "", 
     "workPlace":"", 
     "workUnit":"", 
     "workCountry":"" 
    }]; 

open(){ 
    var item = { 
     "workName": "", 
     "workPlace":"", 
     "workUnit":"", 
     "workCountry":"", 
    }  
    this.products.push(item); 
    } 

public products:Array<any>; 

export class Work { 
    public workName:string; 
    public workPlace: string; 
    public workUnit: string; 
    public workCountry :string; 
} 

Public workDetails:workDetails = new Work(); 
+0

私は、smae変数 'workDetails.workName'をいくつかの入力要素のngModelにバインドするのが問題だと思います。 – Mike

+0

正しいですが、同じMDカードの内容を繰り返さなければならないので、何が代わりになるはずです。 – Bhrungarajni

+0

あなたはあなたの質問を明確にするべきです、実際にngForやtypescriptを使って動的に何かを繰り返すのか分かりません。あるいは、複数のハードコーディングされた要素を持つだけですか?あなたのコードが適切な状態になっていないなど、Workクラスに同じ変数が4つ宣言されています。 – Mike

答えて

1

私はあなたがこのような何かを行う必要がありますオブジェクトの配列を作成するために考えて、

TS:

this.products = [{"workName": "", "workPlace": "", "workUnit": "", "workCountry": ""}, {"workName": "", "workPlace": "", "workUnit": "", "workCountry": ""}, {"workName": "", "workPlace": "", "workUnit": "", "workCountry": ""}]; 

    openAddPosition(){ 
     var item = { 
      "workName": "", 
      "workPlace":"", 
      "workUnit":"", 
      "workCountry":"", 
     }  
     this.products.push(item); 
     } 

    public products:Array<Work>; 

export class Work { 
    public workName:string; 
    public workPlace: string; 
    public workUnit: string; 
    public workCountry :string; 
} 

public workDetails:Work = new Work(); 

html:

<button md-mini-fab class="md-fab md-mini add-task" mdTooltipPosition="below" mdTooltip="Add" aria-label="New Task" (click)="openAdd()" style="bottom: 70%; right: 2%;"> 
         <md-icon style="color:white;">add</md-icon> 
         </button> 
<md-card layout="column" class="border-top-3px col-lg-12 col-md-12 col-sm-12 col-xs-12 " *ngFor="let workDetails of products"> 
         <div class="clearfix col-lg-12 col-md-12 col-sm-12 col-xs-12"> 
          <h6 class="color-primary md-headline" style="font-size:18px;">Adding</h6> 
         </div> 
         <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6" style="font-size:13px;"> 
          <md-input-container> 
           <input mdInput type="text" [(ngModel)]="workDetails.workName" placeholder="Work Name" [ngModelOptions]="{standalone: true}" required /> 
          </md-input-container> 
          <md-input-container> 
           <input mdInput type="text" [(ngModel)]="workDetails.workPlace" placeholder="Work Name" [ngModelOptions]="{standalone: true}" required /> 
          </md-input-container> 
         </div> 
         <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6" style="font-size: 13px; 
        text-align: left;"> 
          <md-input-container> 
           <input mdInput type="text" [(ngModel)]="workDetails.workUnit" placeholder="Work Name" [ngModelOptions]="{standalone: true}" required /> 
          </md-input-container> 
          <md-input-container> 
           <input mdInput type="text" [(ngModel)]="workDetails.workCountry" placeholder="Work Name" [ngModelOptions]="{standalone: true}" required /> 
          </md-input-container> 
        </md-card> 

注:

  1. TS:私は

  2. 作業

    の配列を作成したHTML:forループとname属性を削除追加しました。

+0

応答のおかげで、私の問題へのあなたの答えは、workDetailsの代わりにforループで、私はHTMLでの位置を使用していたので、私は問題に直面していた。それは私のおかげで助けた – Bhrungarajni

+0

これは私たちがデータを入力し、配列のリストを持つデータのために働いていないコンテンツのために働いています – Bhrungarajni

関連する問題