2015-06-08 3 views
0

У меня есть угловое приложение, где половина - угловая js, а половина - плоскость js, как ajax. Итак, как я могу использовать $ location внутри этой функции, не передавая ее как параметр функции.

function x() { 
    $location.path('/error').replace(); 
} 

Теперь я хотел бы знать, как использовать $location внутри нормального яваскрипта функции. В основном у меня есть функция, вызываемая по крайней мере из 20 мест. В этой функции я хочу выполнить замену.

+4

Рассмотрите возможность делать обратное и интегрировать простой материал JS в свое угловое приложение. –

+0

can u plz elobarte – aWebDeveloper

+1

Ну, как я уже сказал, используйте свои функции внутри своих угловых контроллеров ... Короче говоря, не пытайтесь «дополнять» обычное приложение JS с помощью Angular. Создайте Угловое приложение с самого начала. И было бы неплохо, если бы вы могли потратить некоторое время, чтобы написать «Не могли бы вы рассказать». –

ответ

1

Вам необходимо использовать angular.injector, который предоставит и предоставит доступ провайдеру извне.

angular.injector(['app']).get('$location') 

Для получения дополнительной информации см этого SO Answer

Update

Вы можете непосредственно применить инжектор на элементе, который даст доступ ко всем сервисным находящемуся внутри этого модуля.

angular.element('body').injector().get('$location'); //body can replace by your element. 
+0

У меня нет модулей – aWebDeveloper

+0

@aWebDeveloper проверить обновленное решение .. –

+0

что такое тело. и я думаю, что вам не хватает точки – aWebDeveloper

0

Я бы порекомендовал обертывание этой функции как услуги. И измените myFunction и x на разумное имя. Измените приложение на любое ваше имя приложения.

function x($location) { 
    $location.path('/error').replace(); 
} 

x.$inject = ['$location']; 

angular.module('app').function('myFunction', x);