2

Это файл мои угловатые JSскрипт не работает в templateurl

test.js файл:

var app = angular.module("angleapp", []) 
.controller('MainController', ['$scope', function ($scope) { 
    $scope.test = "hi all" 
}]) 
.directive('programlisting', function() { 
    return { 
     restrict: 'E', 
     scope: { 
     }, 
     templateUrl: '/directives/test.html' 
    }; 
}); 

test.html файл:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <script type="text/javascript"> 
      alert("stop"); 
     </script> 
    </head> 
    <body> 
     hi how are you 
    </body> 
</html> 

Это мой индексный файл:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title></title> 
     <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
     <script src="http://code.highcharts.com/highcharts.js"></script> 
     <script src="http://code.highcharts.com/modules/exporting.js"></script> 
     <script src="/directives/test.js"></script> 
    </head> 
    <body data-ng-app="angleapp"> 
     <div class="main" ng-controller="MainController"> 
      <programlisting></programlisting> 
     </div> 
    </body> 
</html> 

Теперь, когда я пытаюсь запустить этот

hi how are you 

подходит к выходу. но окно предупреждения не поп-op, где я не ошибаюсь?

ответ

2

Проблема заключается в том, что теги автоматически не выполняются браузером при вводе innerHTML (что происходит в случае templateUrl). Обычно эти метки оцениваются программно (eval). jQuery делает это, но jqLite (внутренняя jQuery-подобная реализация Angular) не делает.

В вашем случае исправление просто, шаг JQuery скрипт Тег перед тем угловатыми, то Угловой будет использовать JQuery для DOM манипуляций:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> 

Кроме того, вы должны очистить свой test.html шаблон, оставить только содержание тела. Вот как должен выглядеть test.html:

hi how are you 

<script type="text/javascript"> 
    alert("stop"); 
</script> 

И, наконец, я не знаю, почему вы должны иметь сценарий тег внутри частичного шаблона, но в большинстве случаев это плохая идея, и есть более эффективные подходы.

+0

thnx a ton .. был застрял здесь больше часа. btw waht - лучшие подходы вместо использования скриптового тега внутри частичных шаблонов? –

+0

, пожалуйста, дайте мне знать –

+0

Вы можете посмотреть атрибут link тега директивы – joyBlanks

1

В частичном файле html (test.html), не нужно писать теги doctype, head и body. Просто напишите html-элементы и скрипт. Он должен работать.

+0

уже пробовал это, но не работает, я имею в виду, что окно предупреждения не отображается –

+0

Можете ли вы создать скрипт JS? – Aravinder