UNPKG

oclazyload

Version:

Load modules on demand (lazy load) with angularJS

154 lines (152 loc) 9.37 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for ./src/ocLazyLoad.directive.js</title> <meta charset="utf-8"> <link rel="stylesheet" href="../prettify.css"> <link rel="stylesheet" href="../base.css"> <style type='text/css'> div.coverage-summary .sorter { background-image: url(../sort-arrow-sprite.png); } </style> </head> <body> <div class="header high"> <h1>Code coverage report for <span class="entity">./src/ocLazyLoad.directive.js</span></h1> <h2> Statements: <span class="metric">100% <small>(13 / 13)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Branches: <span class="metric">50% <small>(2 / 4)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Functions: <span class="metric">100% <small>(7 / 7)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Lines: <span class="metric">100% <small>(13 / 13)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp; </h2> <div class="path"><a href="../index.html">All files</a> &#187; <a href="index.html">./src/</a> &#187; ocLazyLoad.directive.js</div> </div> <div class="body"> <pre><table class="coverage"> <tr><td class="line-count">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37</td><td class="line-coverage"><span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">8</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict'; &nbsp; (function (angular) { 'use strict'; &nbsp; angular.module('oc.lazyLoad').directive('ocLazyLoad', function ($ocLazyLoad, $compile, $animate, $parse, $timeout) { return { restrict: 'A', terminal: true, priority: 1000, compile: function compile(element, attrs) { // we store the content and remove it before compilation var content = element[0].innerHTML; element.html(''); &nbsp; return function ($scope, $element, $attr) { var model = $parse($attr.ocLazyLoad); $scope.$watch(function () { return model($scope) || <span class="branch-1 cbranch-no" title="branch not covered" >$attr.ocLazyLoad;</span> // it can be a module name (string), an object, an array, or a scope reference to any of this }, function (moduleName) { <span class="missing-if-branch" title="else path not taken" >E</span>if (angular.isDefined(moduleName)) { $ocLazyLoad.load(moduleName).then(function () { // Attach element contents to DOM and then compile them. // This prevents an issue where IE invalidates saved element objects (HTMLCollections) // of the compiled contents when attaching to the parent DOM. $animate.enter(content, $element); // get the new content &amp; compile it $compile($element.contents())($scope); }); } }, true); }; } }; }); })(angular); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6L3d3dy9vY0xhenlMb2FkL3NyYy9vY0xhenlMb2FkLmRpcmVjdGl2ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLENBQUMsVUFBQSxPQUFPLEVBQUk7QUFDUixnQkFBWSxDQUFDOztBQUViLFdBQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxVQUFTLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUU7QUFDOUcsZUFBTztBQUNILG9CQUFRLEVBQUUsR0FBRztBQUNiLG9CQUFRLEVBQUUsSUFBSTtBQUNkLG9CQUFRLEVBQUUsSUFBSTtBQUNkLG1CQUFPLEVBQUUsaUJBQVMsT0FBTyxFQUFFLEtBQUssRUFBRTs7QUFFOUIsb0JBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDbkMsdUJBQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7O0FBRWpCLHVCQUFPLFVBQVMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7QUFDckMsd0JBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDckMsMEJBQU0sQ0FBQyxNQUFNLENBQUMsWUFBTTtBQUNoQiwrQkFBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQztxQkFDNUMsRUFBRSxVQUFBLFVBQVUsRUFBSTtBQUNiLDRCQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7QUFDOUIsdUNBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQU07Ozs7QUFJcEMsd0NBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDOztBQUVsQyx3Q0FBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDOzZCQUN6QyxDQUFDLENBQUM7eUJBQ047cUJBQ0osRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDWixDQUFDO2FBQ0w7U0FDSixDQUFDO0tBQ0wsQ0FBQyxDQUFDO0NBRU4sQ0FBQSxDQUFFLE9BQU8sQ0FBQyxDQUFDIiwiZmlsZSI6IkM6L3d3dy9vY0xhenlMb2FkL3NyYy9vY0xhenlMb2FkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIihhbmd1bGFyID0+IHtcclxuICAgICd1c2Ugc3RyaWN0JztcclxuXHJcbiAgICBhbmd1bGFyLm1vZHVsZSgnb2MubGF6eUxvYWQnKS5kaXJlY3RpdmUoJ29jTGF6eUxvYWQnLCBmdW5jdGlvbigkb2NMYXp5TG9hZCwgJGNvbXBpbGUsICRhbmltYXRlLCAkcGFyc2UsICR0aW1lb3V0KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcmVzdHJpY3Q6ICdBJyxcclxuICAgICAgICAgICAgdGVybWluYWw6IHRydWUsXHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAxMDAwLFxyXG4gICAgICAgICAgICBjb21waWxlOiBmdW5jdGlvbihlbGVtZW50LCBhdHRycykge1xyXG4gICAgICAgICAgICAgICAgLy8gd2Ugc3RvcmUgdGhlIGNvbnRlbnQgYW5kIHJlbW92ZSBpdCBiZWZvcmUgY29tcGlsYXRpb25cclxuICAgICAgICAgICAgICAgIHZhciBjb250ZW50ID0gZWxlbWVudFswXS5pbm5lckhUTUw7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Lmh0bWwoJycpO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbigkc2NvcGUsICRlbGVtZW50LCAkYXR0cikge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBtb2RlbCA9ICRwYXJzZSgkYXR0ci5vY0xhenlMb2FkKTtcclxuICAgICAgICAgICAgICAgICAgICAkc2NvcGUuJHdhdGNoKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vZGVsKCRzY29wZSkgfHwgJGF0dHIub2NMYXp5TG9hZDsgLy8gaXQgY2FuIGJlIGEgbW9kdWxlIG5hbWUgKHN0cmluZyksIGFuIG9iamVjdCwgYW4gYXJyYXksIG9yIGEgc2NvcGUgcmVmZXJlbmNlIHRvIGFueSBvZiB0aGlzXHJcbiAgICAgICAgICAgICAgICAgICAgfSwgbW9kdWxlTmFtZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFuZ3VsYXIuaXNEZWZpbmVkKG1vZHVsZU5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2NMYXp5TG9hZC5sb2FkKG1vZHVsZU5hbWUpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEF0dGFjaCBlbGVtZW50IGNvbnRlbnRzIHRvIERPTSBhbmQgdGhlbiBjb21waWxlIHRoZW0uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBwcmV2ZW50cyBhbiBpc3N1ZSB3aGVyZSBJRSBpbnZhbGlkYXRlcyBzYXZlZCBlbGVtZW50IG9iamVjdHMgKEhUTUxDb2xsZWN0aW9ucylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZiB0aGUgY29tcGlsZWQgY29udGVudHMgd2hlbiBhdHRhY2hpbmcgdG8gdGhlIHBhcmVudCBET00uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFuaW1hdGUuZW50ZXIoY29udGVudCwgJGVsZW1lbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgbmV3IGNvbnRlbnQgJiBjb21waWxlIGl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBpbGUoJGVsZW1lbnQuY29udGVudHMoKSkoJHNjb3BlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxufSkoYW5ndWxhcik7XHJcbiJdfQ==</pre></td></tr> </table></pre> </div> <div class="footer"> <div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Fri Feb 03 2017 10:04:58 GMT+0100 (Paris, Madrid)</div> </div> <script src="../prettify.js"></script> <script> window.onload = function () { if (typeof prettyPrint === 'function') { prettyPrint(); } }; </script> <script src="../sorter.js"></script> </body> </html>