¿Cómo pasar dinámicamente el nombre de la directiva personalizada en el atributo de clase de la etiqueta div?

Soy muy nuevo en AngularJS. He hecho una directiva personalizadauser y quiero llamarlo dinámicamente en el atributo de clase usando una variable. p.ej.$scope.dirName = "user"; Cuando uso esta variable en el siguiente código:

<div class = {{dirName}}></div>

Su resultado debe mostrar dos campos de entrada con valores especificados. Pero no lo está haciendo. Cuando reemplace{{dirName}} conuser. Funciona bien, significa que se muestran dos campos de entrada con los valores especificados. ¿Alguien puede decir, qué error estoy haciendo?

Esto es index.html

<div ng-controller = "Ctrl">
<form name = "myForm">
  <div class = {{dirName}}></div>
  <hr>
  <tt>userName : {{user}}</tt>
</form>

Esto es script.js

<pre>var app = angular.module('App',[]);

app.controller('Ctrl', function($scope){
 $scope.user = {name:'adya',last:'Rajput'};
 $scope.dirName = "user";
});

app.directive('user',function(){
 return{
   restrict:'C',
   templateUrl:'template.html'
 };
});</pre>

template.html contiene:

UserName : <input type='text' name='userName' ng-model='user.name' required>
LastName : <input type='text' name='lastName' ng-model='user.last'>

Respuestas a la pregunta(1)

Su respuesta a la pregunta