(function() { var angularJsUrl; var scripts = document.getElementsByTagName("script"); var angularJsRegex = /^(|.*\/)angular(-.*?)?(\.min)?.js(\?[^#]*)?(#(.*))?$/; for(var j = 0; j < scripts.length; j++) { var src = scripts[j].src; if (src && src.match(angularJsRegex)) { angularJsUrl = src.replace('docs.angularjs.org', 'code.angularjs.org'); continue; } } var HTML_TEMPLATE = '\n' + '\n' + ' \n' + '_SCRIPT_SOURCE_' + '
\n' + '_HTML_SOURCE_\n' + ' \n' + ''; angular.widget('doc:example', ['$injector', '$browser', '$location', '$element', function($injector, $browser, $location, element){ this.descend(false); // do not compile the example code var module = element.attr('module') || ''; //jQuery find() methods in this widget contain primitive selectors on purpose so that we can use //jqlite instead. jqlite's find() method currently supports onlt getElementsByTagName! var example = element.find('pre').eq(0), //doc-source scriptSrc = '', htmlSrc = example.text().replace(/\n' : ''). replace('_HTML_SOURCE_', indent(htmlSrc, ' ')). replace('_MODULE_', module ? '="' + module + '"' : '')); element.html(''); element.append(tabs); try { if (window.execScript) { // IE window.execScript(scriptSrc || '"stupid IE!"'); // IE complains when evaling empty string } else { window.eval(scriptSrc); } } catch (e) { alert(e); } return function() { var scope = this; var modules = [ 'ng', function($provide) { $provide.value('$browser', $browser); $provide.value('$location', $location); } ]; module && modules.push(module); angular.bootstrap(livePreviewTab, modules).invoke(function($rootScope) { element.bind('$destroy', scope.$root.$watch(function() { $rootScope.$digest(); })); }); }; function jsFiddleButton(jsfiddle) { var fixJsFiddleIssue132 = true; if (jsfiddle !== 'false') { if(jsfiddle === true) { //dynamically generate a fiddle var fiddleUrl = 'http://jsfiddle.net/api/post/library/pure/'; function jsFiddleEscape(text, prefix) { return indent(text.replace(/<\/textarea>/gi,'</textarea>'), prefix); } return '