如何从外部调用Angularjs工厂函数
How to call an Angularjs factory function from outside
我有一个像这样的角度模块/工厂:
var app = angular.module('webportal', ['vr.directives.slider', 'angular-flexslider', 'LocalStorageModule', 'multi-select']);
app.factory('portal', ['uri', function (uri) {
portal = {};
portal.getURLParameter = function (name) {
var hash;
var vars = [];
var indexOfQuestion = window.location.href.indexOf('?');
if (indexOfQuestion != -1) {
var hashes = window.location.href.slice(indexOfQuestion + 1).split('&');
for (var i = 0; i < hashes.length; i++) {
if (typeof name == 'undefined')
vars.push(hashes[i]);
else {
hash = hashes[i].split('=');
if (hash[0] = name)
return hash[1];
}
}
}
};
return portal;
}]);
现在我尝试从外部角度调用getURLParameter
,如下所示:
angular.injector(['webportal']).get('portal').getURLParameter('blah');
当然,这不起作用,并失败与:
错误:[$injector:modulerr]由于到:[$injector:modulerr]未能实例化模块vr.directives.slider由于:[$injector:modulerr]未能实例化模块ngTouch,原因是:[$injector:unp]未知提供程序:ngClickDirectiveProviderhttp://errors.angularjs.org/1.2.25/$injector/unp?p0=ngClickDirectiveProviderminErr/。。。。。。
有人能告诉我什么是正确的称呼吗?
在进一步探索后找到了答案:
angular.element(document.body).injector().get('portal').getURLParameter('blaha')
相关文章:
- Jasmine测试工厂函数调用本地函数和另一个函数-获取错误:应该是间谍,但得到了function
- 为什么我没有从angularJS中的这个工厂函数中得到响应
- 工厂函数给出“;错误:未定义
- 什么是jQuery中的工厂函数
- AngularJS 工厂函数无法访问本地存储的缓存变量
- 工厂函数不返回数据
- 打字稿中的工厂函数语法
- 调用工厂函数会触发错误
- 在JS模块加载的上下文中,什么是立即执行的工厂函数
- Angular工厂函数需要返回一些东西吗
- 如何从外部调用Angularjs工厂函数
- AngularJS文档:工厂函数没有返回任何内容
- 构造函数与工厂函数
- 在Angular中,如何等待工厂函数完成并处理输出?
- Angular js的模态弹出式调用工厂函数
- 在AngularJS中,如何让一个工厂函数引用另一个工厂函数?
- AngularJS控制器使用工厂函数
- 如何定义一个同名的Typescript构造函数和工厂函数
- ES.下一个装饰器可以直接调用,也可以作为工厂函数调用
- 工厂函数的依赖注入(AngularJS)