我想在我的指令中加载js文件。我在使用tinyMCE 4和rails资产时遇到了一些问题。 tinymce.js需要theme.js,所以我无法编译它们。我只想在需要指令时调用那些js文件。
答案 0 :(得分:1)
我猜你可以有一个指令,在渲染之前,检查一些全局的东西是否已经加载了脚本,如果没有,你将源脚本放在指令的模板中。如果存在计时或渲染问题,您可以使用嵌套方法或类似的方法来实现,但是......不确定是否值得进行黑客攻击。
答案 1 :(得分:0)
也许你可以使用我在https://github.com/dotJEM/angular-code-directives/blob/master/src/script.ts中使用的相同方法,这是一个非常基本的脚本加载器服务。
/// <reference path="_references.d.ts" />
interface IScriptService {
(url:string);
}
angular.module('dotjem.directives.code').service('$script', [<any>
function ():IScriptService {
var loaded = {};
return function (url:string) {
if (!(url in loaded)) {
$.ajax(url, {
dataType: "script",
success: () => {
loaded[url] = url;
},
async: false,
cache: true
});
}
};
}]);