Я использую AngularJS, и я хочу использовать select для выбора элемента, но затем получить доступ к массиву, который может создавать другую информацию.
Например:
<select name="manufacturer" id="manufacturer" ng-model="manufacturer" class="form-control">
<option value="{{ A[0] }}">{{ A[0] }}</option>
<option value="{{ B[0] }}">{{ B[0[ }}</option>
<option value="{{ C[0] }}">{{ C[0] }}</option>
</select>
// NAME, SKU, PRICE, WEIGHT
$scope.A = ["Ferarri","FER1",128000,1.5];
$scope.B = ["Ford","FOR1",13000,1];
$scope.C = ["Renault","REN1",13000,1];
Таким образом, я могу легко напечатать "имя" в элементе выбора для пользователя, чтобы узнать, что он выбирает, но после его выбора я хочу полностью использовать этот массив. Итак, если пользователь выбирает "Форд", я хочу иметь что-то вроде $ scope.car [2] по цене на автомобиль, независимо от того, какой из них может выбрать, что дало бы мне "13000".
Какой был бы лучший способ сделать это?
Благодарю.
Что-то вроде этого даст вам доступ ко всему объекту:
$scope.cars = [
{name: "Ferarri", short: "FER1", price: 128000, num: 1.5}
{name: "Ford", short: "FOR1", price: 13000, num: 1}
{name: "Renault", short: "REN1", price: 13000, num: 1}
]
<select ng-model="car" ng-options="car as car.name for car in cars"></select>
Затем вы можете использовать его в своих шаблонах так:
<h1>{{car.price}}</h1>
Я использую ng-options
для достижения этого, который очень гибкий, смотрите здесь, в официальной документации: https://docs.angularjs.org/api/ng/directive/ngOptions
car
объектов вng-options
и легко выбрать один. Кроме того, наличие этих объектов сделало бы работу с ними более логичной; то есть$scope.car.price
намного понятнее, чем$scope.car[2]
.