JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<div ng-app="icmssProdutos" ng-controller="IcmssProdutosController">
<div ng-repeat="icms in ICMSs">
<div class="jumbotron">
<button style="float:right " type="button" class="btn btn-danger" ng-click="removerIcms(icms)">x</button>
<label for="ex2">Regime</label>
<select class="form-control" ng-model="icms.regime" ng-options="r.regime for r in data">
<option value="">Selecione o Regime</option>
</select>
<label for="ex2" ng-show="icms.regime">Situação Tributária
<select class="form-control" ng-show="icms.regime" ng-model="icms.situacao" ng-options="s.situacao for s in icms.regime.SituacaoTributaria">
<option value="">Selecione a Situação Tributária</option>
</select>
</label>
<label for="ex2" ng-show="icms.regime">Origem
<select class="form-control" ng-model="icms.Origem" ng-options="o.Origem for o in icms.regime.Origens">
<option value="">Selecione a Origem do Produto</option>
</select>
</label>
<div class="col-md-12" ng-if="icms.situacao">
<div class="col-md-6">
<h2>ICMS</h2>
<label for="ex2" ng-if="icms.situacao">Modalid. de Determ. da BC ICMS
<select class="form-control" ng-model="icms.ModaliBcICMS" ng-options="m.Modali for m in icms.regime.ModaliBcICMS track by m.id">
<option value="">Selecione Modalidade de determinação da BC do ICMS</option>
</select>
</label>
<label for="ex2" ng-if="icms.situacao">% Redução da da BC ICMS
<input type="number" class="form-control"></input>
</label>
<label for="ex2" ng-if="icms.situacao">Alíquota do ICMS
<input type="number" class="form-control"></input>
</label>
<label...
JavaScript
var CadastroICMSProduto = angular.module('icmssProdutos', []);
CadastroICMSProduto.controller('IcmssProdutosController', ['$scope', '$location', function($scope, $location) {
$scope.ICMSs = [];
$scope.IncluirICMS = function() {
$scope.ICMSs.push({});
}
$scope.removerIcms = function(icms) {
var index = $scope.ICMSs.indexOf(icms);
$scope.ICMSs.splice(index, 1);
}
$scope.data = [{
"id": "0",
"regime": "Tributação Normal",
"SituacaoTributaria": [{
"value": 00,
"situacao": "00 - Tributada Integralmente"
}, {
"value": 10,
"situacao": "10 - Tributada com Cobrança de ICMS por ST"
}, {
"value": 20,
"situacao": "20 - Com redução de base de cálculo "
}],
"Origens": [{
"value": 0,
"Origem": "0 - Nacional - Exceto as indicadas nos códigos 3,4,5 e 8"
}, {
"value": 1,
"Origem": "1 - Estrangeira - Importação Direta"
}, {
"value": 2,
"Origem": "2 - Estrangeira - Adq. no mercado interno"
}],
"ModaliBcICMS": [{
"id": 0,
"Modali": "0 - Margem Valor Agregado (%)"
}, {
"id": 1,
"Modali": "1 - Pauta (Valor)"
}, {
"id": 2,
"Modali": "2 - Preço Tabelado Máx. (valor)"
}, {
"id": 3,
"Modali": "3 - Valor da operação"
}],
"ModaliBcICMSst": [{
"id": 0,
"ModaliST": "0 – Preço tabelado ou máximo sugerido"
}, {
"id": 1,
"ModaliST": "1 - Lista Negativa (valor)"
}, {
"id": 2,
"ModaliST": "2 - Lista Positiva (valor)"
}, {
"id": 3,
"ModaliST": "3 - Lista Neutra (valor)"
}, {
"id": 4,
"ModaliST": "4 - Margem Valor Agregado (%)"
}, {
"id": 5,
"ModaliST": "5 - Pauta (valor)"
}]
}, {
"id": "1",
"regime": "Simples Nacional",
"SituacaoTributaria": [{
"situacao": "Building #4"
}, {
"situacao": "Building #5"
}, {
"situacao": "Building #6"
}],
"Origens": [{
"Origem": "0 - Nacional - Exceto as...