Boa noite, eu criei uma diretiva para um filtro,
var app = angular.module('filtroDirectives', []);
app.directive('filtroCanaisDirective', ['$http', function($http) {
return {
restrict: 'AE',
transclude: true,
templateUrl: '/app/filtros/templates/filtro-canal.html',
controller: function($scope, $attrs) {
$scope.canais = [];
$http({
method: 'POST',
url: '/Canais/GetCanais',
headers: {
"Accept": "application/json;odata=verbose"
}
})
.success(function(data) {
$scope.canais = fillListChannels(data.d.results);
})
.error(function(error){
console.log("Erro: Erro ao carregar canais.");
console.log(error);
});
function fillListChannels(listChannels) {
var listChannelModel = [];
for (var i = 0; i < listChannels.length; i++) {
listChannelModel.push(new fillChannelModel(listChannels[i]));
}
return listChannelModel;
}
function fillChannelModel(channel) {
var self = {};
self.Id = channel.Id;
self.FirstName = channel.FirstName;
return self;
}
}
}
}]);
E no arquivo html eu fiz a chamada dela
<filtro-canais-directive lista="Canais"></filtro-canais-directive>
A minha dúvida se dá no momento onde eu vou obter os dados selecionados no html da minha diretiva. Na controladora eu obtenho da seguinte forma,
var scopeChannel = angular.element($("#filtroCanal")).scope();
Porém acredito que não seja da melhor forma essa obtenção de valores, visto que estou capturando os valores pelo DOM do elemento na controladora.
Desde já agradeço à ajuda.