function(element, link) {
      // Normalize the link parameter
      if(angular.isFunction(link)) {
        link = { post: link };
      }

      var compiledContents;
      return {
        pre: (link && link.pre) ? link.pre : null,
        /**
         * Compiles and re-adds the contents
         */
        post: function(scope, element, attrs, trvw) {
          // Compile our template
          if(!compiledContents) {
            compiledContents = $compile(trvw.getNodeTpl());
          }
          // Add the compiled template
          compiledContents(scope, function(clone) {
            element.append(clone);
          });

          // Call the post-linking function, if any
          if(link && link.post) {
            link.post.apply(null, arguments);
          }
        }
      };
    }
function(element, link) {
      
      if(angular.isFunction(link)) {
        link = { post: link };
      }

      var compiledContents;
      return {
        pre: (link && link.pre) ? link.pre : null,
        
        post: function(scope, element, attrs, trvw) {
          
          if(!compiledContents) {
            compiledContents = $compile(trvw.getNodeTpl());
          }
          
          compiledContents(scope, function(clone) {
            element.append(clone);
          });

          
          if(link && link.post) {
            link.post.apply(null, arguments);
          }
        }
      };
    }
function ( element , link ) { // Normalize the link parameter
 if ( angular . isFunction ( link ) ) { link = { post : link } ; } var compiledContents ; return { pre : ( link && link . pre ) ? link . pre : null , /**
         * Compiles and re-adds the contents
         */ post : function ( scope , element , attrs , trvw ) { // Compile our template
 if ( ! compiledContents ) { compiledContents = $compile ( trvw . getNodeTpl ( ) ) ; } // Add the compiled template
 compiledContents ( scope , function ( clone ) { element . append ( clone ) ; } ) ; // Call the post-linking function, if any
 if ( link && link . post ) { link . post . apply ( null , arguments ) ; } } } ; }
Manually compiles the element, fixing the recursion loop.
@param {Object} element The angular element or template
@param {Function} link [optional] A post-link function, or an object with function(s) registered via pre and post properties.
@returns An object containing the linking functions.
Manually compiles the element fixing the recursion loop .