Использование массивов в значениях параметров

0

Я использую 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".

Какой был бы лучший способ сделать это?

Благодарю.

  • 0
    вам действительно следует рассмотреть возможность переключения на объекты вместо массивов, когда это возможно, при использовании angular. затем вы можете передать массив car объектов в ng-options и легко выбрать один. Кроме того, наличие этих объектов сделало бы работу с ними более логичной; то есть $scope.car.price намного понятнее, чем $scope.car[2] .
Теги:

1 ответ

3
Лучший ответ

Что-то вроде этого даст вам доступ ко всему объекту:

$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

  • 0
    Спасибо, что нашли время ответить. Я сейчас использую объект, а не массив. Я заполнил выбор и все работает хорошо. Проблема в том, что когда я выбираю Ferrari в раскрывающемся списке, я могу использовать {{ferrari.name}}, но все остальное мне ничего не дает, например {{ferrari.price}}
  • 0
    @ devon93 Используйте car.price, а не ferrari.price, так как car - это объект, к которому вы обращаетесь, а не «ferrari», «ferrari» - это только свойство имени.
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню