问题标签 [angularjs-provider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
149 浏览

angularjs - AngularJS - 从外部污染提供者、服务和工厂

我无意中用我认为我只分配给范围的属性污染了服务。例子:

这是一个 Plunker 来演示这种行为:

https://plnkr.co/edit/nDkNfKmQRtcBuJ0NUcHo?p=preview

我知道在将对象传递给函数时,JavaScript 是通过引用传递的。除非这些对象被深度克隆。

我曾假设服务之外的某些东西可以访问该服务公开的对象等,但只能通过值访问,并且对该服务的任何更改都必须由该服务提供的 api 完成。似乎唯一的方法是angular.copy在上面的例子中使用 egtestCtrl.testService = angular.copy(testService);

我猜这一定是预期的行为。如果是这样,除了性能优势之外,我认为这是一个缺点。

为什么 AngularJS 允许这种行为而不是“黑盒”提供者?

0 投票
1 回答
1902 浏览

javascript - 角度提供者错误 - 必须定义 $get 工厂方法

此咖啡脚本代码正在尝试创建一个角度提供程序,但我收到此消息:提供程序 'ItemsProvider' 必须定义 $get 工厂方法。

我设置了 $get 方法。知道发生了什么吗?

它无法加载此消息:

编辑: 这是生成的 javascript:

0 投票
1 回答
1990 浏览

angularjs - Angularjs:在不同模块中使用公共服务

我正在尝试对不同的模块使用相同的服务。有很多模块,所以我尝试将它们注入到父模块中。像这样的东西:

所有n个模块共有的服务是这样的:

现在我无法弄清楚如何为所有子模块使用此服务。我应该将此服务
与哪个模块关联? 我试过做,但没有用。 我哪里错了?
app.service('myService',function(){...})

编辑 1:
此外,我正在尝试使用service与所有这些子模块共享一个变量。我不确定我是否通过使用共享变量的服务来做正确的事情,或者我是否应该使用提供者工厂来完成这项工作。

编辑 2:
我找到了这些链接,但我无法掌握答案。参考他们并请提供我的答案
如何在AngularJS中的多个模块之间共享变量
在不同模块上的控制器之间传递变量

0 投票
2 回答
13235 浏览

angularjs - 将解析与 angularjs 组件一起使用

我正在尝试在呈现页面之前解析客户列表。

这是状态提供者参考,我有解决方法。

其次是组件,它应该从resolve中调用#test。它应该做的就是在控制台上打印“nihao”这个词。

但是,我不断收到此错误:

我可以看到它正在运行解析函数,所以它可以工作,但它不会注入方法!有任何想法吗?

0 投票
0 回答
113 浏览

angularjs - AngularJs注入提供者错误

我正在尝试注入两个提供程序,但出现错误:

错误:[$injector:modulerr] 无法实例化模块应用程序,原因是:[$injector:unpr] 未知提供者:$paginationTemplateProvider

这是我的代码:

你知道有什么问题吗?

0 投票
0 回答
64 浏览

angularjs - AngularJS服务在通过provider使用时无法访问自己的功能

这是我的提供者:

这是我的示例服务:

现在,当我在控制器中使用提供程序时,一切正常,但是当在上面_this.doLogin()的函数中从服务内部调用时checkLoginStatus,我得到错误,即doLogin未定义。但是,如果我使用_this.login(),它可以工作,因为此函数是通过提供程序返回的。如何使服务功能直接相互访问?

编辑:我知道this回调的变化范围,以及如何在这种情况下使用它。我的问题是在我的问题中提到的情况下我应该使用什么,因为通过控制器内部的提供者调用服务方法,this即使在服务本身中调用服务功能,也会将范围转移到提供者的范围?

0 投票
0 回答
229 浏览

angularjs - Angular + 响应标头 - 无法从 $http 提供者访问响应标头

我试图通过 $http 提供程序访问响应标头但没有成功。在我的研究中,我读到这是一个 CORS 问题。但这没有任何意义,因为阅读 GoogleChrome 检查器(网络部分)中的标题,标题就在那里。代码:

有什么我可以做的吗?我正在考虑将 $http 更改为 $ajax。备择方案?

谢谢!

0 投票
1 回答
59 浏览

javascript - JavaScript - 调用在提供程序中定义的函数

我最近开始开发使用 AngularJS 编写的 Web 应用程序。在其中一个文件中myApp.js,有一个provider定义如下:

在网站上的大多数页面上,都有一个“设置”按钮,它会打开一个对话框,用户可以使用该对话框更改给定页面的设置。我已经在该对话框中添加了一个复选框,该对话框在检查时,我想用它来设置将其选中为“主页”页面的页面,覆盖以前是“主页”页面的页面。如果/当再次取消选中该复选框时,应将主页设置回其原始值(即在 中/alarms确定的页面constants)。

就目前的情况而言,我已设法更改主页,以便将其更新为用户选择的页面 - 当单击“主页”时,它们将被带到选中复选框的页面。但是一旦他们退出,他们选择的主页就被忘记了,当他们再次登录时,默认主页是他们的主页,直到他们选择另一个。

我现在想将用户的默认主页设置为他们选择的自定义主页,并尝试使用provider上面函数中定义的“常量设置器函数”。

我通过调用:

当在对话框上按下“确认”按钮时(选中“设置为主页”复选框)。

但是,当我按下“确认”按钮时,我的TypeError控制台中会显示:

我不明白为什么会出现此错误... setConstant()被定义为具有以下功能的函数:

那么为什么控制台说它不是一个函数呢?我怎样才能解决这个问题?

编辑

我正在调用myAppConf.setConstant()的函数在 Pages/ctrls.js 中定义如下:

0 投票
1 回答
319 浏览

angularjs - 使用 $sce 中的 $sceProvider 功能

从 Angular 文档中它说$sceDelegateProvider.resourceUrlWhitelist可以设置受信任的资源 URL,但我需要来自控制器的功能。

我想在我的服务中设置可信资源 URL 的白名单。因此,我只被允许使用$sce服务而不是提供者..

我试图实现这个例子,它给我带来了一个错误(“$sce:unsafe Require a safe/trusted value”):

this.renderUrl = this.$sce.getTrustedUrl(${this.baseUrl}) + `/x/y/?name=${this.name};

然后将 注入renderUrl到 html 中:

有没有办法从$sce服务中设置受信任的资源 URL,以便将其添加到受信任的资源 URL 的白名单中?

0 投票
1 回答
172 浏览

angularjs - 打字稿无法识别 angularjs 提供程序 $get 方法上的接口

好的,所以我想要一个提供者,它可以让我关闭状态提供者的引用。所以,我有 JS 代码,我正在尝试将它迁移到 TS。这是我到目前为止所得到的,但由于某种原因,它一直抱怨没有这样的方法(属性'get'在类型'IReferenceProvider'上不存在。尝试将接口更改为'IReferenceProviderGetterInterface''get'方法似乎做得很好,但我失去了看起来不正确的“injectRef”方法,所以我相信我把接口放在了正确的位置)。任何人以前都遇到过这个问题,很高兴指出我做错了什么。尝试用谷歌搜索这个问题,但据我所知,一切似乎都还不错。无论如何,这里是片段:

我使用它的方式是: