Mój obiekt z bazy danych nadchodzi taki:

[
    {
        "id": 8,
        "concessionaria": {
            "id": 1,
            "nome": "asda"
        },
        "plano": {
            "id": 1,
            "sigla": "B3",
            "nome": "tetes"
        },
        "descricao": "45987",
        "enable": true
    },
    {
        "id": 7,
        "concessionaria": {
            "id": 2,
            "nome": "teste2"
        },
        "plano": {
            "id": 3,
            "sigla": "b4",
            "nome": "Teste 2"
        },
        "descricao": "qweqwe",
        "enable": true
    },
    {
        "id": 6,
        "concessionaria": {
            "id": 2,
            "nome": "teste2",
            "estado": "ES"
        },
        "plano": {
            "id": 2,
            "sigla": "B3",
            "nome": "Consumidores"
        },
        "descricao": "werwerw",
        "enable": true
    }
]

I muszę pokazać dwa wybrane, aby wybrać "Konsesionaria", a następnie "Planos".

Jak mogę to zrobić, ponieważ "Konsidearia" przychodzi wiele razy jako zmiany "Plano"?

0
Sofia Lunkes 25 czerwiec 2017, 02:57

3 odpowiedzi

Najlepsza odpowiedź

Musisz utworzyć nowy model.

Ta przykładowa pokazuje, jak może konwertować lub utworzyć nowy model, aby uzyskać concessionaria i plano jako array, aby uczynić je jako select option

var app = angular.module("app", []);

app.controller("ctrl", [
  "$scope",
  function($scope) {

    var json = [{
        "id": 8,
        "concessionaria": {
          "id": 1,
          "nome": "asda"
        },
        "plano": {
          "id": 1,
          "sigla": "B3",
          "nome": "tetes"
        },
        "descricao": "45987",
        "enable": true
      },
      {
        "id": 7,
        "concessionaria": {
          "id": 2,
          "nome": "teste2"
        },
        "plano": {
          "id": 3,
          "sigla": "b4",
          "nome": "Teste 2"
        },
        "descricao": "qweqwe",
        "enable": true
      },
      {
        "id": 6,
        "concessionaria": {
          "id": 2,
          "nome": "teste2",
          "estado": "ES"
        },
        "plano": {
          "id": 2,
          "sigla": "B3",
          "nome": "Consumidores"
        },
        "descricao": "werwerw",
        "enable": true
      }
    ];

    $scope.model = {
      concessionaria: [],
      plano: []
    };

    angular.forEach(json, function(item) {
      var concessionaria = item.concessionaria;
      var plano = item.plano;
      $scope.model.concessionaria.push(concessionaria);
      $scope.model.plano.push(plano);
    });

  }
]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
  <label>concessionaria</label>
  <select ng-model="form.concessionaria" ng-options="item as item.nome for item in model.concessionaria"></select> {{form.concessionaria}}
  <hr />

  <label>plano</label>
  <select ng-model="form.plano" ng-options="item as item.nome for item in model.plano"></select> {{form.plano}}
</div>
0
Maher 25 czerwiec 2017, 04:02

Będziesz potrzebować dwóch wyborów, wypełnić pierwszą wybraną z odrębnymi wartościami koncesjonariuszy, a następnie użytkownik wybrać wartość z pierwszej wybranej, będziesz miał identyfikator Koncesjonariuszy, a następnie w zależności od tej wartości możesz wypełnić drugie pole wyboru z inną plano. Jeśli więc użytkownik wybiera koncesjonariusza z ID 2 Twoje drugie pole wyboru będzie wypełnione dwoma Plano (jeden z Plano ID 2 i innym z Plano ID 3)

0
Mahtab Alam 25 czerwiec 2017, 00:15

Możesz użyć filtra Limitto .

Na przykład: ng-repeat="item in items | limitTo 2"

Aby uzyskać więcej informacji: https://www.w3schools.com/angular/ng_filter_lilimitto.asp.

0
Kenany 25 czerwiec 2017, 00:11