Норм, только мне не нравится, что нет инкапсуляции в шаблоне.
Я считаю, что лучше, когда каждый блок описывается отдельно, а если нужно вызвать блок в другом блоке, то должен быть вызов и передача параметров:
<div ui="window" class="window">
<h3 ui="window:title" class="header">окно 2</h3>
<button ui="window:close">закрыть</button>
<div ui-call="chat" ui-params="{простой JS объект с параметрами}"></div>
</div>