Olá, Como exercício, criei uma página com 2 elementos: um select e uma tabela, sendo que cada elemento é controlado por um controller específico:
<div class="row">
<div class="well" ng-controller="competenciaCtrl">
<form class="form-inline">
<div class="form-group">
<select class="form-control" ng-model="periodoEscolhido" ng-options="x.REF for x in vetor_anomes">
<option value="">Escolha um periodo</option>
</select>
</div>
<button class="btn btn-default" type="button" ng-click="submeteAnoMes()">Submit</button>
</form>
</div> <!-- fim do bloco de competência -->
</div>
<div class="row">
<div class="well tamanhoTabela" ng-controller="interfaceCtrl">
<table class="table table-striped table-hover">
<thead>
<tr>
<th>#</th>
<th>INTERFACE</th>
<th>SITUAÇÃO</th>
<th>ÚLTIMA ALTERAÇÃO</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="x in tbl_arquivos_recebidos">
<td>{{ $index+1 }}</td>
<td><a href="" ng-click="verCriticas(x.COD_SISTEMA)">{{ x.COD_SISTEMA + ' - ' + x.NOME_SISTEMA }}</a></td>
<td>{{ x.DESC_SITUACAO }}</td>
<td>{{ x.DT_HR }}</td>
</tr>
</tbody>
</table>
</div> <!-- fim do bloco tabela -->
</div>
Existe alguma forma de pegar o objeto selecionado (do primeiro controller) ser lido no outro controller?
// controller do select
angular.module("painelMonitoramento").controller("competenciaCtrl", function($scope, $http){
// $scope.data_referencia = "201811";
// $scope.vetor_anomes = ["201811","201810","201809","201808"];
$scope.vetor_anomes = [];
$scope.retornaVetorAnoMes = function(){
$http.get('api/conexao.php/dataref').then(
function(response){
$scope.vetor_anomes = response.data.dados;
},
function(error){
alert('Ocorreu algum erro durante o processamento da informação! Tente novamente.');
}
);
}
$scope.retornaVetorAnoMes();
$scope.submeteAnoMes = function(){
var item = $scope.periodoEscolhido;
if (item != null) {
console.log(item);
}
}
});
// controller da tabela
angular.module("painelMonitoramento").controller("interfaceCtrl", function($scope, $http){
$scope.dataRef = "201811";
$scope.detalhamento = [];
$scope.retornaTabelaArquivosRecebidos = function(){
$http.get('api/conexao.php/tabela/'+$scope.dataRef).then(
function(response){
$scope.tbl_arquivos_recebidos = response.data.dados;
},
function(error){
alert('Ocorreu algum erro durante o processamento da informação! Tente novamente.');
}
);
}
$scope.retornaTabelaArquivosRecebidos();
$scope.verCriticas = function(item){
var dt = new Date();
var str = dt.toLocaleDateString();
var sdt = str.substr(6, 4) + "-" + str.substr(3, 2) + "-" + str.substr(0, 2);
var cod = item;
$scope.detalhamento.push(sdt);
$scope.detalhamento.push(cod);
console.log($scope.detalhamento);
}
$scope.verCriticas();
});
No controller1, criei a função retornaVetorAnoMes que carrega uma lista de períodos no formato AAAAMM, e o recebo na variável $scope.vetor_anomes.
No controller2, atribuo à variável $scope.dataRef um anomes, mas o ideal seria o $scope.vetor_anomes[0] do outro controller. Mas não funcionou.
Alguma sugestão?