Por que o ng-scope é adicionado ao javascript inline da minha visualização parcial e faz o alerta não funcionar?

Estou usando o AngularJs com o sistema de templates. Eu quero adicionar script javascript inline específico para cada modelo adicionando checkbox de alerta em relação à guia selecionada (Home | List | Settings)

Html processa: mas ng-scope é adicionado e nada alerta quando você muda de abas.

alert("home") 

Eu disponibilizo o exemplo aqui:

http://bit.ly/HWcN1H

ou aqui

plunkr exemplo com alerta (“template1”) presente em template1.html, mas processa como

 alert("template1") 

Eu melhorei a solução do endorama no github

O mesmo processo.

  1. Crie o arquivo angular-loadscript.js (no link acima)
  2. no seu aplicativo, use ‘ngLoadScript’ como uma dependência de recurso.

    var app = angular.module (‘YOUR_APP_NAME’, [‘ngResource’, ‘ngRoute’, …, ‘ngLoadScript’]);

  3. Em seu uso parcial ‘text / javascript-lazy’ como o tipo MIME.

Tudo deve funcionar conforme necessário:

 /*global angular */ (function (ng) { 'use strict'; var app = ng.module('ngLoadScript', []); app.directive('script', function() { return { restrict: 'E', scope: false, link: function(scope, elem, attr) { if (attr.type==='text/javascript-lazy') { var s = document.createElement("script"); s.type = "text/javascript"; var src = elem.attr('src'); if(src!==undefined) { s.src = src; } else { var code = elem.text(); s.text = code; } document.head.appendChild(s); elem.remove(); /*var f = new Function(code); f();*/ } } }; }); }(angular)); 

Existe uma solução codificando uma diretiva:

https://gist.github.com/endorama/7369006

 var app = ng.module('ngLoadScript', []); app.directive('script', function() { return { restrict: 'E', scope: false, link: function(scope, elem, attr) { if (attr.type=='text/javascript-lazy') { var code = elem.text(); var f = new Function(code); f(); } } }; }); 

uso em parcial: