2017-01-14 10 views
5

=== अंतिम अद्यतन == का उपयोग कर ngModel को सरणी में प्रत्येक आइटम के लिए बाध्य करने के लिए कैसे* ngFor सूचकांक

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

के बाद से मैं एक रूप में ngModel उपयोग करते हैं, मैं name attribue जोड़ना होगा।

और मेरी गलती यह है कि मैंने इसका नाम उसी नाम के रूप में उपयोग किया।

<form #myform="ngForm"> 
    <table> 
     <tr *ngFor="let staff of staffs"> 
     <td><input name="name" [(ngModel)]="staff.name">{{staff.name}}</td> 
     </tr> 
    </table> 
</form> 

जब मैं belows में बदल जाता हूं, तो मेरी समस्या हल हो जाती है।

<form #my2form="ngForm"> 
    <table> 
     <tr *ngFor="let staff of staffs;let i = index"> 
     <td><input name="staff.{{i}}.name" [(ngModel)]="staff.name">{{staff.name}}</td> 
     </tr> 
    </table> 
</form> 

==========

माफ करना, मैं कारण है कि मैं नाम [$ सूचकांक] x.Name के बजाय .Name का उपयोग याद नहीं कर सकते।

शायद कई साल पहले मैं x.Name का उपयोग करके कुछ गलती को पूरा करता हूं, और फिर सूचकांक का उपयोग करने की आदत बना देता हूं।

--- अद्यतन -----

मैं एक इनलाइन संपादित मेज, दो तरह से बंधन की जरूरत है।

<table> 
    <tr *ngFor="let x of names"> 
    <td><input [(ngModel)]="x.Name">{{x.Name}}</td> 
    </tr> 
</table> 

let names = [ 
{ Name:'jim'}, 
{ Name:'tom'} 
]; 

शुरू में पृष्ठों को दिखाता है:

blank text field; jim 

blank text field; tom 

के बाद मैं पहली बार पाठ क्षेत्र में 'aaaaaa' लिखते हैं, तो हो जाता है:

aaaaaa; aaaaaa 

blank text field; tom 

मुझे लगता है कि पेज शुरू में आएगा:

jim; jim 
tom; tom 

तो, मेरी समस्या बिल्कुल है, प्रारंभिक मूल्य क्यों गुम है?

+0

डॉक्स पहले https://angular.io/docs/ts/latest/ –

+0

की जांच करें आप क्यों नहीं बस 'x.Name करने के लिए बाध्य नहीं है कोशिश कर सकते हैं '? –

+0

@ टामास हेगेडस जो काम नहीं कर सकता है (पूरी तरह से सुनिश्चित नहीं है) लेकिन मुझे त्रुटि संदेशों को याद है कि '[(ngModel)] =" ... "' टेम्पलेट चर के साथ काम नहीं करता है, लेकिन इसके अलावा, एक अच्छा सुझाव - निश्चित रूप से एक लायक प्रयत्न। –

उत्तर

2

यह [ngModel]="..."

<table> 
    <tr *ngFor="let x of names;let i = index;"> 
    <td>{{ i+ 1 }}</td> 
    <td><input [(ngModel)]="names[i].Name">{{x.Name}}</td> 
    </tr> 
</table> 
+0

धन्यवाद @micronyks मुझे यकीन नहीं था कि वह 2-तरफा बाध्यकारी चाहता है। क्या 'एनजी-मॉडल' स्वचालित रूप से दो-तरफा है? मैं Angular1 के बारे में ज्यादा नहीं जानता। –

+1

हां यह डिफ़ॉल्ट रूप से 'Angular1.x' में है और आपका स्वागत है! – micronyks

2
में आप मामले साहब

अगर आप पाश के लिए उपयोग कर रहे हैं * ngFor तो मुझे ऐसा नहीं लगता कि आप सूचकांक की क्या ज़रूरत है होना चाहिए। आप x.Name का उपयोग क्यों नहीं करते हैं। यहां संशोधित कोड है।

<table> 
     <tr *ngFor="let x of names;let i = index;"> 
     <td>{{ i+ 1 }}</td> 
     <td><input [(ngModel)]="x.Name">{{x.Name}}</td> 
     </tr> 
    </table> 

या आप इस

<table> 
      <tr *ngFor="let x of names;let i = index;"> 
      <td>{{ i+ 1 }}</td> 
      <td><input [value]="x.Name" [(ngModel)]="x.Name">{{x.Name}}</td> 
      </tr> 
     </table> 
संबंधित मुद्दे