2015-06-13 5 views
0

У меня есть JS файл с простой функцией на четких JS:Как вызвать функцию JS вне приложения AngularJS?

function Alert(){ 
    alert(); 
} 

В другом файл у меня есть приложение на угловой JS. Сначала подключенный простой JS-файл на странице и после Angular JS на тегах <head>

Как я могу позвонить Alert() метод от контроллера Угловой JS?

Простой JS файл:

$(function(){ 
function leftTimeInit(){ 
     $.each($('.action-loader'), function(index, val) { 
      initLoader($(this), $(this).data('percentage')); 
     }); 
    } 
}); 

Угловая JS в контроллере:

leftTimeInit(); 

Я получаю ошибку:

Uncaught ReferenceError: leftTimeInit is not defined

ответ

1

Вы не должны делать DOM манипуляции в ваши контроллеры. Поэтому вы должны, вероятно, переосмыслить, как вы хотите использовать эту функцию.

В любом случае, leftTimeInit объявляется анонимной функцией и отображается только там. Вы не можете позвонить в другое место. Если вы этого хотите, вам придется переместить его из $(function(){}). Но, как я уже сказал, не рекомендуется.

Что касается вашего примера Alert() ... В Angular у вас есть доступ к простым функциям JS через $ window (конечно, они глобальны, и вы можете получить к ним доступ в любом случае, но если вы используете $ window, вы можете издеваться над ними в тестах).

.controller('Ctrl', function ($scope, $window) { 
    $window.Alert('something'); 
}); 
Смежные вопросы