Javascript 当与ui路由器一起使用时,html页面中脚本标记内的脚本不会被执行
我正在使用Angular和UI路由器构建一个单页web应用程序。在我的index.html页面中,我当前有以下三个元素,一个navbar指令、一个ui视图和一个footer指令,如下所示:Javascript 当与ui路由器一起使用时,html页面中脚本标记内的脚本不会被执行,javascript,angularjs,angularjs-directive,angular-ui-router,single-page-application,Javascript,Angularjs,Angularjs Directive,Angular Ui Router,Single Page Application,我正在使用Angular和UI路由器构建一个单页web应用程序。在我的index.html页面中,我当前有以下三个元素,一个navbar指令、一个ui视图和一个footer指令,如下所示: <body> <div class="container-fluid"> <div class="row"> <cep-navbar></cep-navbar> </div>
<body>
<div class="container-fluid">
<div class="row">
<cep-navbar></cep-navbar>
</div>
<ui-view></ui-view>
<div class="row">
<cep-footer></cep-footer>
</div>
</div>
<!-- All the bower script dependencies-->
<!-- build:js js/lib.js -->
<!-- bower:js -->
<!-- endbower -->
<!-- endbuild -->
<!-- All the custom script dependencies-->
<!-- build:js js/app.js -->
<!-- inject:js -->
<!-- endinject -->
<!-- inject:template:js -->
<!-- endinject -->
<!-- endbuild -->
</body>
我通过单击navbar指令中的一个链接加载搜索状态,该指令在index.html页面的ui视图中注入search.html页面。但问题是script标记中的脚本永远不会执行。这是我的search.html页面
<script type="text/javascript">
console.log('Test me');
window.alert('Test me bro');
</script>
<h1>Hello World!!</h1>
log('testme');
window.alert('Test me bro');
你好,世界!!
为什么每次加载我的搜索状态时,search.html页面中的scripts标记内的脚本都不会执行
链接到plunk:进一步研究后,我了解到angular使用的jquery精简版(jQLite)有一些DOM限制,阻止它在部分视图中执行脚本文件 解决方案
在index.html中引用Angular之前,请先引用jQuery脚本。这使得angular可以使用jQuery而不是jQlite。这样做就解决了我的问题。您是否考虑过在SearchController中运行脚本,而不是将其内联到模板中<代码>函数SearchController($scope){alert(“hi”);…@Oliver Barnwell它将在控制器上工作。但我的要求是我想从局部视图引用第三方脚本文件。如中所示,包括外部JS文件?如果是这样,为什么不在页面首次加载时加载第三方脚本文件,而不是在用户浏览网站时动态加载脚本文件?
<script type="text/javascript">
console.log('Test me');
window.alert('Test me bro');
</script>
<h1>Hello World!!</h1>