2015-10-23 2 views
1

Мне нужно динамически обращаться к различным свойствам объекта в цикле, но кажется недействительным.Угловой динамический доступ к свойствам объекта

<tr ng-repeat="item in Items"> 
    <td> 
     {{item.itemName}} <!-- OK --> 
    </td> 
    <td ng-repeat="monthName in months.monthName"> 
     <input class="form-control text-right" 
       value="{{item.monthName}}" <!-- KO --> 
       <!-- value="{{item.january}}" OK --> 
       > 
    </td>        
</tr> 

ответ

2

Вы должны использовать bracket notation для этого, то есть

<input class="form-control text-right" 
      value="{{item[monthName]}}" 

Я не уверен, если ваше намерение использовать value правильно здесь или нет, однако, если вы имеете в виду использовать нг-модель, то ее будет:

<input class="form-control text-right" 
      ng-model="item[monthName]" 

в противном случае вы имеете в виду свойства monthName объекта item, а не Prope rty с именем, представляющим значение monthName объекта item.

+0

Он работает, спасибо! –

+0

@ Jordi добро пожаловать .. – PSL

1

Вы пытаетесь получить доступ к объекту monthName объекта item. Если вы хотите использовать monthName в качестве идентификатора для получения что-то вроде item.january вы можете использовать обозначение item[monthName] Код будет выглядеть так

<tr ng-repeat="item in Items"> 
    <td> 
     {{item.itemName}} <!-- OK --> 
    </td> 
    <td ng-repeat="monthName in months.monthName"> 
     <input class="form-control text-right" 
       value="{{item[monthName]}}" <!-- OK --> 
       > 
    </td>        
</tr>