Angular:

http://angularjs.org/

by mrajcok

HTML

<script type="text/ng-template" id="X-template.html">
      X template
</script>
<script type="text/ng-template" id="Y-template.html">
      Y template
</script>
<div ng-controller="MyCtrl">
    <my-directive type="X"></my-directive>
    <my-directive type="Y"></my-directive>
</div>

JavaScript

var app = angular.module('myApp',[]);

app.directive('myDirective', function() {
    return {
        restrict: 'E',
        compile: function(element, attrs) {
            element.append('<div ng-include="\'' + attrs.type + '-template.html\'"></div>');
        }
    }
});

function MyCtrl($scope) {
}