Is it possible to programmatically get the original transcluded content within an Angular.js directive?
I'm trying to create an an editable
directive which can be added to any div, allowing the user to edit the HTML content with custom angular directives. (The design goal is to avoid the need to add infinite configuration GUI features in the app, as power users can just edit the HTML...), e.g.:
<div editable>
<h1>Lorem Ipsem</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
<clock>A custom directive</clock>
</div>
See this Plunker as an example (http://plnkr.co/edit/nIrr9Lu0PZN2PdnhQOC6?p=preview):
<h1>A title</h1><p>some content</p><clock></clock>
)What I like about this so far:
What I can't figure out yet:
Within the compile function, $transclude
seems to contain the template for mydirective
, and with the controller function, $transclude
contains the post-compiled content after things have been changed, directives rendered, etc.
You can use transclude function:
.directive('editable', function() {
return {
transclude: true,
link: function(scope, element, attrs, ctrl, transclude) {
transclude(scope, function(clone) {
// clone is your transluded content
});
}
};
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With