Atributos dinámicos con AngularJS

En algunos casos, necesito aplicar diferentes atributos a un nodo según las propiedades de mi modelo.

Por ejemplo, en un caso necesito agregar una etiqueta 'requerida' y en otro caso no. He estado usando ng-if con diferentes sucursales para lograr esto, pero los casos se están yendo de las manos rápidamente.

 <div ng-if="model.required">
    <input class="form-control"
           type="text"
           required 
           ng-model="model" />
 </div>
 <div ng-if="!model.required">

    // as different options arise,
    // i have more forks for each attribute combo

    <input class="form-control"
           type="text"
           ng-model="model" />
 </div>

¿Hay una mejor manera de aplicar atributos dinámicos a los nodos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta