我如何在正常功能中使用 $location
How do i use $location in a normal function
我有一个 angular 应用程序,其中一半是 angular js,一半是平面 js,如 ajax。那么我如何在该函数中使用 $location 而不将其作为函数参数传递。
function x() {
$location.path('/error').replace();
}
现在我想知道如何在普通 javascript 函数中使用 $location
。基本上我有一个至少从 20 个地方调用的函数。在那个函数中,我希望做 replacestate。
您需要使用 angular.injector
从外部提供和访问提供商。
angular.injector(['app']).get('$location')
有关详细信息,请参阅此 SO Answer
更新
您可以直接在元素上应用注入器,这将允许访问该模块中存在的所有服务。
angular.element('body').injector().get('$location'); //body can replace by your element.
我建议将该功能包装为一项服务。并将 myFunction 和 x 更改为一个合理的名称。将应用程序更改为您的应用程序名称。
function x($location) {
$location.path('/error').replace();
}
x.$inject = ['$location'];
angular.module('app').function('myFunction', x);
我有一个 angular 应用程序,其中一半是 angular js,一半是平面 js,如 ajax。那么我如何在该函数中使用 $location 而不将其作为函数参数传递。
function x() {
$location.path('/error').replace();
}
现在我想知道如何在普通 javascript 函数中使用 $location
。基本上我有一个至少从 20 个地方调用的函数。在那个函数中,我希望做 replacestate。
您需要使用 angular.injector
从外部提供和访问提供商。
angular.injector(['app']).get('$location')
有关详细信息,请参阅此 SO Answer
更新
您可以直接在元素上应用注入器,这将允许访问该模块中存在的所有服务。
angular.element('body').injector().get('$location'); //body can replace by your element.
我建议将该功能包装为一项服务。并将 myFunction 和 x 更改为一个合理的名称。将应用程序更改为您的应用程序名称。
function x($location) {
$location.path('/error').replace();
}
x.$inject = ['$location'];
angular.module('app').function('myFunction', x);