Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

angular-recursion

A service which makes it easy possible to have recursive Angular directives.

Why

When an Angular directive calls itself, Angular gets into an endless loop. This service provides the logic needed to work around this.

Installation

  1. bower install angular-recursion --save or npm install angular-recursion --save.
  2. Include angular-recursion.min.js.
  3. Add the RecursionHelper module as a dependency.
  4. Inject the RecursionHelper service and use it.

Usage

Inject the RecursionHelper service into your directive, and use it in the compile function, as shown in the example below. The example is also available as a Plunker, so you can see it running.

angular.module('myModule', ['RecursionHelper']).directive("tree", function(RecursionHelper) {
    return {
        restrict: "E",
        scope: {family: '='},
        template: 
        '<p>{{ family.name }}{{test }}</p>'+
            '<ul>' + 
                '<li ng-repeat="child in family.children">' + 
                    '<tree family="child"></tree>' +
                '</li>' +
            '</ul>',
        compile: function(element) {
            return RecursionHelper.compile(element, function(scope, iElement, iAttrs, controller, transcludeFn){
                // Define your normal link function here.
                // Alternative: instead of passing a function,
                // you can also pass an object with 
                // a 'pre'- and 'post'-link function.
            });
        }
    };
});

About

A service which makes it easy possible to have recursive Angular directives.

Resources

License

Packages

No packages published