Вызов функции внешнего 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. Но он не вызывает эту функцию. А также я не получаю никаких консольных ошибок для этого.
Как добиться этого... Спасибо заранее.
Ответы
Ответ 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()
Удачи!