2016-11-23 119 views
0

在我的TS我:角2 - 数据绑定不工作

private accountTypes = [ 
    { accountTypeId: 1, 
     displayName: "Individual - Taxable", 
     isTaxable: 1, 
     subcategory: "Taxable" }, 
    { }, 
    { } 
    ... more objs 
] 

,我有这在我的HTML:

<div *ngFor="let question of section?.questions"> 
    <select class="q-select" 
      [(ngModel)]="acttypetest" // BIND HERE 
      name="answerForQuestion{{ question?.questionId }}"> 
     <optgroup label="{{subCat?.subCat}}" 
      *ngFor="let subCat of accountTypes; let i = index;"> 
      <option *ngFor="let acctType of accountTypes" 
       [ngValue]="acctType"> 
        {{ acctType?.displayName }} 
      </option> 
     </optgroup> 
    </select> 
</div> 

当我尝试的第一个元素绑定在我accountTypes阵列到acttypetest这样它正常工作:

setSelectedAcctType() { 
    this.acttypetest = this.accountTypes[0]; 
} 

但是,当我尝试绑定像这样(用边条[R对象正是accountTypes数组的第一个元素相匹配,它不工作:

setSelectedAcctType() { 
    this.acttypetest = { 
     accountTypeId: 1, 
     displayName: "Individual - Taxable", 
     isTaxable: 1, 
     subcategory: "Taxable" 
    }; 
} 

为什么犯规第二种方式工作,如果它是完全相同的格式的对象为在我accountTypes数组的第一个元素?

+2

因为具有精确外观的2个苹果仍然算作2个不同的苹果。 –

+1

即使它们在模式或数值方面匹配,它们也不是指内存中的同一个对象。 – lbrahim

回答

0

绑定一个私有变量我认为这是什么问题。尽量不要私人。

accountTypes = [ 
    { accountTypeId: 1, 
     displayName: "Individual - Taxable", 
     isTaxable: 1, 
     subcategory: "Taxable" }, 
    { }, 
    { } 
    ... more objs 
]