2016-11-23 5 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]; 
} 

Но когда я пытаюсь связать его, как это (с Регула г объект, который точно совпадает с первым элементом в моем accountTypes массиве, он не работает:

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

Почему оленья кожа второй способ работы, если он точно такой же отформатированный объект в качестве первого элемента в моем accountTypes массиве?

+2

Потому что 2 яблока с точным взглядом по-прежнему считаются двумя различными яблоками. –

+1

Даже если они совпадают с точки зрения схемы или даже значений, они не относятся к одному и тому же объекту в памяти. – lbrahim

ответ

0

связывание с частной переменной Я думаю, что в этом и проблема. Попытайтесь не сделать частным.

accountTypes = [ 
    { accountTypeId: 1, 
     displayName: "Individual - Taxable", 
     isTaxable: 1, 
     subcategory: "Taxable" }, 
    { }, 
    { } 
    ... more objs 
] 
Смежные вопросы