AngularJS Выбрать индекс выбранного свойства - PullRequest
0 голосов
/ 11 октября 2018

У меня есть запрос, который возвращает массив объектов на основе выбранного провайдера.Например:

data:[
    0:
        Producto:"Chiken",
        Unidad: "box",
        PrecioUnitario:"34334",
        etc..
    1:
        Producto:"Chiken",
        Unidad: "box",
        PrecioUnitario:"200",
        etc..
]

Я правильно отображаю данные в теге <select> Example

Что мне нужно, так это если пользователь выбираетскажем «Carne Asada», все остальные свойства этого выбранного дочернего объекта автоматически выбираются в остальных полях, например:

Ввод текста Unidad должен быть автоматически «box», поле «precioUnitario» должно быть200. Или визуально: enter image description here

Другое дело, что оно должно отображать значение, которое имеет объект, но оно может быть отредактировано пользователем.

Контроллер:

$scope.columns = [{colId: 'col1', producto:[], catidad:'', unidades:[], preunit:''}];
$scope.fact = {};

$scope.get_proveedor_prod = function(fact){
  var data = {ProveedorID: fact.ProvID};
  $http.post(URL + "/api/get_prod_by_provider.php",data).then(function(callback) {
      $scope.products = callback.data;
  }); 
}

Вид:

<md-input-container>
  <select ng-model="fact.producto"
  ng-options="item.ProductID as item.NombreProducto for item in products"
    class="form-control selectformcc" required>
    <option value="" disabled selected>Producto</option>
  </select>
</md-input-container> 

1 Ответ

0 голосов
/ 11 октября 2018

(я предполагаю, что ваша нотация данных неверна и вы хотели использовать массив объектов.)

Привязать select ко всему элементу, а не к свойству элемента:

ng-options="item as item.NombreProducto for item in products"  //not ="item.ProductID...

Теперь fact.producto (select модель) является объектом и будет содержать весь элемент.В текстовом поле Unidad вы можете использовать:

<input type="text" ng-model="fact.producto.Unidad" />

Вот пример с простыми для понимания данными: Рабочая скрипка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...