Olá, É possível definir o controller de uma diretiva de forma dinâmica? Existe como adicionar algo como 'ng-model' na tag HTML da diretiva apontando para este controller?
Olá, É possível definir o controller de uma diretiva de forma dinâmica? Existe como adicionar algo como 'ng-model' na tag HTML da diretiva apontando para este controller?
Vc desenvolveu alguma parte do código?Poste aqui para avaliar.
Olá Lucca! Você pode utilizar a propriedade 'name' no ddo (Directive Definition Object) da diretiva, e também é necessário definir a propriedade 'controller' com '@'. Segue abaixo um exemplo:
var app = angular.module('myApp',[]).
directive('diretivaAlura', function(){
return {
restrict : 'E',
scope:{},
template:"<button ng-click=mensagem()>{{nome}}</button>",
controller : "@",
name:"nomeController"
}
}).
controller("UmCtrl",function($scope){
$scope.nome = 'Controller 1';
$scope.mensagem = function(){
alert('Controller 1 usado');
}
}).
controller("DoisCtrl",function($scope){
$scope.nome = 'Controller 2';
$scope.mensagem = function(){
alert('Controller 2 usado');
}
})
HTML:
<diretiva-alura nome-controller="UmCtrl"></diretiva-alura>
<diretiva-alura nome-controller="DoisCtrl"></diretiva-alura>
A solução do Lucas
Oi Luca, se gostou da resposta do Bruno não deixe de marcá-la como solução. Ele merece os pontos :)