2016-10-06 4 views
0

У меня есть данные в формате 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" 

Есть ли способ сделать это? Какой правильный синтаксис?

+0

Нет синтаксиса/способа сделать 'mob.mobData ['name == partnerCodePrefix']. Val'. Рассматривали ли вы создание другого объекта, сопоставленного с этим, в соответствии с вашими потребностями. Вы могли бы просто создать карту с ключом, являющимся значением имени. Вы также можете использовать lodash. – bhantol

ответ

1

Я думаю, что вы можете иметь функцию, которая принимает значение имеет параметр и возвращает индекс массива, имя которого совпадает с параметром, как

mob.mobData [returnIndex (ул)]. Вал

Смежные вопросы