У меня есть массив объектов, которые я хочу просмотреть. Используя функцию, я хочу дать «тип» объекта и получить «значение» для них.
Например:
Массив:
$scope.data = [
{
"type": "CUSTOMER_NO",
"value": "12345"
},
{
"type": "NAME_LINE_1",
"value": "CURTIS"
},
{
"type": "ADDR_STREET1",
"value": "500 RODEO DR"
},
{
"type": "ADDR_STREET2",
"value": "SUITE 102, MD 0750"
},
{
"type": "ADDR_CITY",
"value": "SAINT JOSEPH"
},
{
"type": "ADDR_ZIP",
"value": "22331"
}
]
контроллер (forloop):
$scope.formatAddress = function(addressInfo) {
angular.forEach($scope.data, function(addressValue) {
switch(addressValue.type) {
case "CUSTOMER_NO":
address = addressValue.value;
break;
case "ADDR_STREET1":
address = addressValue.value;
break;
case "ADDR_STREET2":
address = addressValue.value;
break;
case "NAME_LINE_1":
address = addressValue.value;
break;
case "NAME_LINE_2":
address = addressValue.value;
break;
case "ADDR_CITY":
address = addressValue.value;
break;
case "ADDR_ZIP":
address = addressValue.value;
break;
default:
address = addressValue.value;
}
});
return address;
};
Я перебираю массив, используя forEach, и использую переключатель, чтобы проверить, какая строка передана определенному типу, который я хочу.
В HTML:
<div>{{vm.formatAddress("CUSTOMER_NO")}} - {{vm.formatAddress("NAME_LINE_1")}}</div>
<div>{{vm.formatAddress("ADDR_STREET1")}} {{vm.formatAddress("ADDR_STREET2")}}</div>
<div>{{vm.formatAddress("ADDR_CITY")}}, {{vm.formatAddress("CUSTOMER_NO")}} - {{vm.formatAddress("ADDR_ZIP")}}</div>
То, что я сейчас получаю, это ... просто номер клиента, например ...
12345 - 12345
12345 12345
12345, 12345 - 12345
Что я хочу вернуть ...
12345 - CURTIS
500 RODEO DR, SAINT JOSEPH
SUITE 102, MD 0750
SAINT JOSEPH, 22331
EDIT:
решил это используя цикл for