function replaceElementWithMarker(element, src) {
      // A comment marker is placed for debugging purposes
      var comment = $compile.$$createComment ?
          $compile.$$createComment('ngMessagesInclude', src) :
          $document[0].createComment(' ngMessagesInclude: ' + src + ' ');
      var marker = jqLite(comment);
      element.after(marker);

      // Don't pollute the DOM anymore by keeping an empty directive element
      element.remove();
    }
@ngdoc directive
@name ngMessagesInclude
@restrict AE
@scope

@description
`ngMessagesInclude` is a directive with the purpose to import existing ngMessage template
code from a remote template and place the downloaded template code into the exact spot
that the ngMessagesInclude directive is placed within the ngMessages container. This allows
for a series of pre-defined messages to be reused and also allows for the developer to
determine what messages are overridden due to the placement of the ngMessagesInclude directive.

@usage
```html
<!-- using attribute directives -->
<ANY ng-messages="expression" role="alert">
  <ANY ng-messages-include="remoteTplString">...</ANY>
</ANY>

<!-- or by using element directives -->
<ng-messages for="expression" role="alert">
  <ng-messages-include src="expressionValue1">...</ng-messages-include>
</ng-messages>
```

{@link module:ngMessages Click here} to learn more about `ngMessages` and `ngMessage`.

@param {string} ngMessagesInclude|src a string value corresponding to the remote template.