Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 脚本未在templateurl中运行_Javascript_Jquery_Angularjs_Angularjs Directive_Highcharts - Fatal编程技术网

Javascript 脚本未在templateurl中运行

Javascript 脚本未在templateurl中运行,javascript,jquery,angularjs,angularjs-directive,highcharts,Javascript,Jquery,Angularjs,Angularjs Directive,Highcharts,这是我的js文件 test.js文件: var app = angular.module("angleapp", []) .controller('MainController', ['$scope', function ($scope) { $scope.test = "hi all" }]) .directive('programlisting', function () { return { restrict: 'E', scope: {

这是我的js文件

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>

正在输出中。但是警报窗口不会弹出“我在哪里出错?”

在partials html pagetest.html中,无需编写doctype、head和body标记。只需编写html元素和脚本。它应该可以工作。

问题是,当注入innerHTML时,浏览器不会自动执行脚本标记,在templateUrl的情况下会发生什么。通常,这些标记是通过编程eval进行计算的。jQuery可以做到这一点,但像Angular的jqLite内部jQuery实现则不行

在您的情况下,修复很简单,将jquery脚本标记移动到angular之前,然后angular将使用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>

最后,我不知道为什么您需要在部分模板中添加脚本标记,但在大多数情况下这是个坏主意,还有更好的方法。

已经尝试过了,但不起作用,我的意思是警报窗口没有显示。您可以创建JS fiddle吗?thnx一吨。。被困在这里一个多小时了。顺便问一下,在部分模板中使用脚本标记的更好方法是什么?您可以查看指令标记的link属性,这取决于您想做什么。为什么在模板中需要脚本?但在您的情况下,因为您有自定义指令,所以应该使用该指令的link函数。这是一段在呈现模板并连接到范围后执行的代码。自html5以来未执行脚本标记。参考
hi how are you 
<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>