Подтвердить что ты не робот

Вызов функции внешнего js файла в контроллере Angular js

У меня есть внешний 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
   });

   ...
   ...

});

Я импортировал external.js перед acccountController.js. Но он не вызывает эту функцию. А также я не получаю никаких консольных ошибок для этого.

Как добиться этого... Спасибо заранее.

4b9b3361

Ответ 1

EDIT: дал неправильный ответ, мой плохой. следующий пример работает.

вашему внешнему файлу должно понравиться следующее:

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

и в вашем контроллере вы вызываете свою функцию скриптов:

console.log(doSomething.test);

или

doSomething.test2();

Я тоже чему-то научился, спасибо;)

Ответ 2

Как уже упоминалось @nilsK, вы определяете функцию самостоятельного вызова. А затем ссылку на него через объект window. Например -

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

И затем,

window.functionName();

И если вы используете AngularJS,

$window.functionName();

Ответ 3

У меня схожая ситуация, и мне не нужно было ее выполнять самостоятельно. Включая внешний файл js в html, и он работал нормально.

Ответ 4

Где вы вызываете $scope.getLoginForm()?. Я думаю, вы никогда не называете это. Поэтому fun() не называется, поэтому вы ничего не видите. Вам нужно вызвать $scope.getLoginForm(). Два способа позвонить В HTML <button ng-click="getLoginForm()"></button> Или в Javascript $scope.getLoginForm() Удачи!