gpt4 book ai didi

javascript - 我如何加载 javascript 文件和 ng-include 模板

转载 作者:行者123 更新时间:2023-12-01 02:00:37 25 4
gpt4 key购买 nike

我使用下面的代码将模板包含到我的主文件中。

<p ng-include=" 'activity.html' "></p>

我的activity.html是这样的,

<script type="text/javascript" src="myjsfile.js"></script>

<p>Activity page contents</p>

但是 JavaScript 没有随模板一起加载

我在 SO 中发现了一些与此相关的问题,但无法找到可行的解决方案。答案之一是在主文件中加载 AngularJS 上方的 jquery,以便脚本标签被接受。但没有发现它有效。

最佳答案

我在这里找到了这个答案load script inside ng-include ,不幸的是这不是那里接受的答案。因此,我在这里提供一些更多的更新来满足需要。

图书馆链接here

创建一个包含以下脚本的js文件并将其加载到主文件中。

(function (ng) {
'use strict';

var app = ng.module('ngLoadScript', []);

app.directive('script', function() {
return {
restrict: 'E',
scope: false,
link: function(scope, elem, attr) {
if (attr.type=='text/javascript-lazy') {
var code = elem.text();
var f = new Function(code);
f();
}
}
};
});
}(angular));

并且加载 ngLoadScript 模块作为应用程序依赖项:

angular.module('myApp', [
'ngLoadScript'
])

在部分 (**activity.html) 中使用 text/javascript-lazytype script 的属性值标签而不是 text/javascript :**

<script type="text/javascript-lazy">
alert("Yup!");
</script>

加载外部 js 还需要做一些事情:

我使用了来自 ddrive 的以下代码用于加载脚本(在 ma​​in.html 中)

function loadjscssfile(filename, filetype) {
if (filetype == "js") {
// if filename is a external JavaScript file
var fileref = document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", filename);
}
else if (filetype == "css") {
//if filename is an external CSS file
var fileref = document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref != "undefined") {
document.getElementsByTagName("head")[0].appendChild(fileref)
}
}

部分(activity.html):

<script type="text/javascript-lazy">
loadjscssfile("myjsfile.js", "js");
</script>

关于javascript - 我如何加载 javascript 文件和 ng-include 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20087274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com