gpt4 book ai didi

javascript - 如何从外部调用 Angularjs 工厂函数

转载 作者:行者123 更新时间:2023-11-29 17:03:15 24 4
gpt4 key购买 nike

我有一个像这样的 Angular 模块/工厂:

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;
}]);

现在我正尝试从外部 Angular 调用 getURLParameter,如下所示:

angular.injector(['webportal']).get('portal').getURLParameter('blah');

当然这不起作用并且失败了:

Error: [$injector:modulerr] Failed to instantiate module webportal due to: [$injector:modulerr] Failed to instantiate module vr.directives.slider due to: [$injector:modulerr] Failed to instantiate module ngTouch due to: [$injector:unpr] Unknown provider: ngClickDirectiveProvider http://errors.angularjs.org/1.2.25/$injector/unpr?p0=ngClickDirectiveProvider minErr/......

那么谁能告诉我正确的调用方式是什么?

最佳答案

经过一番摸索找到了答案:

angular.element(document.body).injector().get('portal').getURLParameter('blaha')

关于javascript - 如何从外部调用 Angularjs 工厂函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26161638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com