在angularjs文件函数之后执行.js文件

时间:2017-06-28 20:05:41

标签: javascript angularjs

我有两个.js文件。我想"读"第一个.js文件的函数结束后的第二个文件。我该怎么做?

html文件:

<div class="row connectedSortable" id="sortable1" ng-app="graficosApp" ng-controller="graficosAppCtrl">
    <button ng-click="loadElements()">Load Elements</button>
</div>

第一个javascript文件(angularjs):

var app = angular.module('graficosApp', []);
    app.controller('graficosAppCtrl', function ($scope, $http) {

        $scope.CarregarGraficos = function () {

            var myEl = angular.element(document.querySelector('#sortable1'));        
            myEl.prepend(content);

        }
    });

然后我有了我的第二个javascript文件,它将为angularjs文件中添加的按钮添加一些功能。我想在第一个文件后加载第二个文件。

谢谢。

3 个答案:

答案 0 :(得分:1)

我不确定在这种方法中添加额外的功能是好的,但无论如何这里是你的问题的答案。要在需要时加载一些脚本 - 您可以在第一个文件中完成所有操作后运行此代码。

// ... everything necessary is done before
var scriptEl = document.createElement('script');
scriptEl.setAttribute('src', '/path_to_js_file.js');
document.body.appendChild(scriptEl);

无论如何,我建议您再次考虑您的代码结构和功能,并尽量避免在需要使用此类“黑客”时出现的情况。

答案 1 :(得分:0)

如果你正在使用jQuery,你可以很容易地getScripts

$.getScript( "ajax/test.js", function( data, textStatus, jqxhr ) {
  console.log( data ); // Data returned
  console.log( textStatus ); // Success
  console.log( jqxhr.status ); // 200
  console.log( "Load was performed." );
});

或者使用ajax:

$.ajax({
  url: "http://myscript/path.js",
  dataType: "script",
  success: function() {
    console.log("script loaded");
  }
});

答案 2 :(得分:0)

您可以尝试在HEAD标记中加载FIRST文件;所以这将确保它将阻止执行。你可以推迟的第二个文件&#39;它的执行。

<script src='FIRST_FILE'></script>
<script defer src='source/SECOND_FILE'></script>

我不确定你想达到的预期行为;因为你可以简单地加载&#34;功能&#34;执行主要功能后需要执行此操作。