Почему $ compile создает несколько элементов в ng-repeat?
HTML:
<li ng-repeat="action in actions" set-on-click function="{{action.function}}"><i class="{{action.class}}" aria-hidden="true"></i>{{action.text}}</li>
Директива:
directive('setOnClick', ['$compile', function ($compile) {
return {
restrict: "A",
link: function(scope, elm, attrs, ctrl)
{
console.log(attrs.function);
elm.attr("ng-click", attrs.function);
elm.removeAttr("set-on-click");
$compile(elm)(scope);
}
};
}]);
Я получаю значение для $scope.actions
из базы данных, которая имеет 3 записи.Мне пришлось использовать директиву, чтобы связать ng-click
с функцией, которая извлекается из базы данных.Вместо того, чтобы получать 3 li, я получаю 9. Каждый li повторяется трижды.Может кто-нибудь объяснить, почему?Есть ли способ остановить это дублирование?