Working on a blog that loads posts on an infinite scroller. Each blog post may or may not have Instagram embeds. I\'m finding that the first one that shows on the page wil
In your app.js create a directive for adding script element:
.directive('externalscript', function() {
var injectScript = function(element) {
var instagramScript = angular.element(document.createElement('script'));
instagramScript.attr('async defer');
instagramScript.attr('charset', 'utf-8');
instagramScript.attr('src', 'http://platform.instagram.com/en_US/embeds.js');
instagramScript.attr('onload', 'window.instgrm.Embeds.process()');
element.append(instagramScript);
var twitterScript = angular.element(document.createElement('script'));
twitterScript.attr('async defer');
twitterScript.attr('charset', 'utf-8');
twitterScript.attr('src', 'http://platform.twitter.com/widgets.js');
element.append(twitterScript);
};
return {
link: function(scope, element) {
injectScript(element);
}
};
})
and then in your html view call:
<div externalscript></div>
Inserting this into header and footer area worked for me in WordPress blog.
<script async="" defer="defer" src="//platform.instagram.com/en_US/embeds.js"></script>
The embed.js script that comes with Instagram's embed code has a process function you can call.
window.instgrm.Embeds.process()
Just use that whenever your dynamic content loads.