簡體   English   中英

如何通過AngularJS中的指令加載JavaScript文件?

[英]How to load JavaScript file through directives in AngularJS?

我試圖通過使用指令將第三方JavaScript庫加載到我的AngularJS組件中。 腳本正在頁面上正確加載,但無法正常工作。 意味着如果您看到代碼inline.js,則它們已向window.OOo添加了一個功能,由於某種原因,該功能並未被添加至window.OOo。

如果我通過使用scripts標記將相同的腳本添加到index.html,則一切正常。

但是,我不想在主頁上加載此腳本,因為它將僅由一個組件使用。

請參見下面的代碼。

視圖

<div>
    <my-directive></my-directive>
</div>

指示

@Directive({
    appName: "ao.app",
    injectableName: "myDirective",
    ngInjectables: ["$compile", "$window"]
})
class Survey {
    constructor(private $compile: ng.ICompileService, private $window: ng.IWindowService) {
    }
    restrict = "E";

    link(scope, elm, attrs) {
        var script = document.createElement("script");
        script.src = "./scripts/vendor/scripts/engine.min.js";
        elm.append(this.$compile(script)(scope));
        var script2 = document.createElement("script");
        script2.src = "./scripts//vendor/scripts/inline.js";
        elm.append(this.$compile(script2)(scope));
    }
}
export = Survey;

inline.js

(function(w, o) {
    'use strict';
    var Init = function() {
        o.launch = function(e) {
            var evt = e || window.event;
        };
    };
    o.addEventListener(w, 'load', Init, false);
})(window, OOo);

任何幫助將不勝感激。 提前致謝 :)

由於它是javascript參考,因此無需編譯即可工作。刪除$ compile並進行檢查。 在此處查看更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM