У меня есть данные в формате JSON в формате:AngularJS/JSON: обратитесь к элементу массива по значению вместо индекса?
[
{
"name": "partnerCodePrefix",
"val": "12345",
"inherit": true
},
{
"name": "partnerCode",
"val": "AAAAAnnnnnnnnnnnnnnn",
"inherit": false
}
]
В настоящее время я доступ к этим данным в моем пользовательском интерфейсе с индексами массива, например:
<tr class="inherited">
<td>
<label>Partner Code Prefix</label>
</td>
<td>
<input type="checkbox" name="partnerCodePrefixInherit" id="" ng-model="mob.mobData[1].inherit">
</td>
<td>
<input type="text" ng-model="mob.mobData[1].val" ng-disabled="mob.mobData[1].inherit">
</td>
</tr>
Таким образом, в этом примере я получаю val
из partnerCodePrefix
с
ng-model="mob.mobData[1].val"
Однако, я предпочел бы получить val
с членом массива name
, а не его индекс, поэтому я могу более легко переупорядочить строки, если это необходимо.
Что-то вроде:
ng-model="mob.mobData['name==partnerCodePrefix'].val"
Есть ли способ сделать это? Какой правильный синтаксис?
Нет синтаксиса/способа сделать 'mob.mobData ['name == partnerCodePrefix']. Val'. Рассматривали ли вы создание другого объекта, сопоставленного с этим, в соответствии с вашими потребностями. Вы могли бы просто создать карту с ключом, являющимся значением имени. Вы также можете использовать lodash. – bhantol