Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Como definir um 'ng-model' na tag de uma diretiva?

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?

4 respostas

Vc desenvolveu alguma parte do código?Poste aqui para avaliar.

solução!

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 :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software