Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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
Angularjs 为什么ngif不从我的代码中删除脚本标记?_Angularjs_Angular Ui Router_Angular Meteor - Fatal编程技术网

Angularjs 为什么ngif不从我的代码中删除脚本标记?

Angularjs 为什么ngif不从我的代码中删除脚本标记?,angularjs,angular-ui-router,angular-meteor,Angularjs,Angular Ui Router,Angular Meteor,我有几个脚本标签,我想删除的条件。在DOM中,我看到它们不存在(它们被注释掉了),但我仍然看到控制台从它们中喷出。脚本标记是否已加载?如果是这样,有没有人对此有任何解决办法 <script ng-if="myCondition" src="blah blah.js"></script> 它们是否被移除并不重要。到angular引导并开始DOM操作时,浏览器将编译所有脚本标记 删除脚本标记不会删除已编译的代码 如果没有更多关于您要完成什么或脚本做什么的信息,这就是目前可以

我有几个脚本标签,我想删除的条件。在DOM中,我看到它们不存在(它们被注释掉了),但我仍然看到控制台从它们中喷出。脚本标记是否已加载?如果是这样,有没有人对此有任何解决办法

<script ng-if="myCondition" src="blah blah.js"></script>

它们是否被移除并不重要。到angular引导并开始DOM操作时,浏览器将编译所有脚本标记

删除脚本标记不会删除已编译的代码

如果没有更多关于您要完成什么或脚本做什么的信息,这就是目前可以提供的所有信息


我建议您阅读有关html编译到DOM时浏览器如何处理网页的基本知识。当它遇到带有
src
的脚本标记时,会对该文件发出请求,并且无法截获该文件

作为一种解决方法,您可以手动插入脚本,如下所示:

function loadScript() {
    var $script = document.createElement('script');
    $script.src = 'blah blah.js';
    $script.id = 'someId';
    document.body.appendChild($script);
}

$rootScope.watch(myCondition, function(value) {
    if(myCondition && !document.getElementById('someId') {
        loadScript();
        isScriptInserted = true;
    }
});

谢谢我试图保留通用代码(一个页面有脚本标签,另一个没有),我想我的基本原理出了问题。这帮了大忙!