В первую очередь, я предполагаю, что это - тестовый код, так как угловой имеет ng-повторение, который соответствует вашим потребностям.
Есть несколько проблем с вашим кодом:
1) Вы не должны использовать myTemplate.replace , но использовать $compile обслуживание. Введите обслуживание $compile в свою директиву (добавьте как функция param), и используйте его:
var text = $compile(myTemplate)(scope);
2) Пункты на диспетчере не будут доступным в вашей директиве. Добавьте его как стоимость к вашему признаку моего-ретранслятора:
<div my-repeater='{{items}}'>
In your directive you need to evaluate my-repeater:
var items = scope.$eval(attrs.myRepeater);
3) jQuery(this).replaceWith will not kickoff angular, since it it out of its scope. You need to do it manually by using scope.$apply. But is better to add the click event in the directive link function:
link: function(scope, element, attrs) {
element.on('click', function() {
...
scope.$apply();
});
Edit: Here is a working example.