在Angular js控制器中调用外部js文件函数

Call external js file function in Angular js controller

本文关键字:js 外部 文件 调用 函数 Angular 控制器      更新时间:2023-09-26

我有一个外部js文件,它有更多的功能。

我需要从angular控制器中调用这些函数。

例如:external.js

...
...
function fun() {
  ...
  ...
}
...
...

控制器: acccountController.js

myApp.controller('AddAccountController',function ($scope,AddAccountLoginServices,$location,localStorageService,$compile,toaster){
   ....
   ....
   $scope.getLoginForm = function(siteId,name) { 
            ...
            ...
            fun(); // This function from external.js file
   });
   ...
   ...
});

我已经在accountcontroller .js之前导入了external.js。但是它没有调用那个函数。而且我也没有得到任何控制台错误。

如何做到这一点…

EDIT:答错了,我的错。下面的例子可以工作。

你的外部文件应该像这样:

var doSomething = (function () {
  "use strict";
   return {
      test: (function () {
        return 'test';
      }()),
      test2: (function () {
        return console.log('test 2');
      })
   };
}());

在控制器中调用脚本函数:

console.log(doSomething.test);

doSomething.test2();

我也学到了一些东西,谢谢;)

正如@nilsK所提到的,您定义了一个自调用函数。然后通过window对象引用它。例如-

(function functionName(){
    Do Something Here...
})();

,

window.functionName();

如果你用的是AngularJS,

$window.functionName();

我有类似的情况,我没有使它自调用函数。包括外部js文件到html,它工作得很好。

在哪里调用$scope.getLoginForm()?我想你从来没打过。所以fun()没有被调用,所以你看不到任何东西。你需要调用$scope.getLoginForm()。两种呼叫方式在HTML <button ng-click="getLoginForm()"></button>中或在Javascript $scope.getLoginForm()祝你好运!

您需要创建该函数的全局实例。

添加一行:

var abc= new funcName();您可以在控制器中使用这一行(var abc= new funcName();),通过使用abc. methodname .

从该文件调用任何方法。