Javascript 脚本未在templateurl中运行
这是我的js文件 test.js文件: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: {
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>