问题标签 [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 投票
2 回答
348 浏览

angularjs - 在运行控制器之前运行一个函数

我定义了一个工厂auth如下:

对于许多页面,我希望始终auth.getUser()在显示它们之前运行。为此,目前,我使用resolve,例如:

这个实现的缺陷是我必须写很多resolve. 因此,我想知道是否有办法在控制器而不是state中实现此规则。有人可以帮忙吗?

0 投票
1 回答
314 浏览

angularjs - 创建提供者 ionic 3 的唯一实例

我正在创建一个 Ionic 应用程序。我有 3 个提供者——数​​据库提供者、投资组合提供者和用户提供者。所有 3 都是可注射的。我这样创建它是因为其他几个页面需要使用它们的函数调用(即它们不应该共享相同的数据,它们都应该创建新实例)

投资组合和用户提供者都导入数据库提供者,因为需要进行相同的数据库调用来检索数据。

我有 1 页 - ViewPortfolio。ViewPortfolio 页面导入用户提供者(以了解用户是谁)和投资组合提供者(以获取用户投资组合数据)。出于某种原因,这两个提供者似乎共享数据库提供者的同一个实例。这就是我使用它们的方式:

投资组合供应商

用户组合是一样的,唯一的区别是它的收听路径不同。

但是,当我在投资组合路径中更改数据时,订阅调用也会在用户路径中触发(反之亦然)。因此,即使我在组件提供程序中添加了 DatabaseProvider,它也不会创建唯一的实例。为什么是这样?

我认为这可能是因为我将它们都导入到同一页面上,但我不相信这就是它不起作用的原因。如何让 2 个提供程序在 databaseprovider 上使用唯一实例,同时在同一页面上调用它们?

这就是我的 app.moudle.ts 文件的样子(请注意 DatabaseProvider 不包含在我的 app.module.ts 文件中)

谢谢,

0 投票
1 回答
121 浏览

angularjs - 代码重构后的AngularJS未知提供者

我有一个运行良好的应用程序,直到我决定重构代码并将 Gulp 用于我的项目。这是我得到的错误:

由于我不确定如何阅读此错误以及它们是否都有问题或者只是其中一个问题,因此我在启动应用程序时使用了其中一些提供程序的两个地方:

和:

在我的 index.html 文件中,我有:

我检查/做了什么:

  • 检查 Gulp 是否将所有必要的 js 文件放在 index.html 中并且顺序正确(对我来说似乎没问题)
  • 检查提供者的名称(虽然我在重构期间没有更改它们)
  • 尝试从 loginCtrl 和 app.run 中删除我的自定义提供程序(执行此操作时我仍然遇到相同的错误)

我阅读了文档和一些 SO 问题,但考虑到我的应用程序在重构之前工作(包括重新组织我的文件结构、重命名文件并开始使用重写代码),我没有看到任何我会做错的事情ES6 标准)。关于这里可能有什么问题的任何想法?

0 投票
0 回答
42 浏览

javascript - 为什么在本地运行这个 AngularJS 代码可以工作,但不能在 IIS 上运行?

我有一个在 localhost 上运行良好的设置提供程序,但不能在 IIS 上运行。AngularJS 的错误是:

这是 settingsservice.js 中的代码:

我已经在本地和服务器上逐步完成了调试器,并且在本地运行时 appLevelProvider 可用于 cache.hasOwnProperty() 返回 true。但是,在服务器上,appLevelProvider 不存在。代码没有被缩小。

我错过了什么?

谢谢

0 投票
0 回答
43 浏览

javascript - 将服务用作配置中的提供者,但也用作控制器中的服务

所以我有这个服务:

我想在我的应用配置中使用它。我尝试了这里提出的建议,但问题是,此方法将我的服务的另一个实例创建为提供者。

因此,当在我的控制器中调用 setIdToken() 时,我的承诺在一个实例中得到解决。但是当我在我的应用程序配置中等待它时,它永远不会解决(服务的其他实例,变量的其他实例)。

所以我的目标是,将此服务用作我的控制器中的服务,调用一个方法来解决在我的服务中声明的承诺,并在我的应用程序配置中等待相同承诺的解决。

这也是我在我的应用程序配置中尝试过的,但没有成功:

有任何想法吗 ?提前致谢

0 投票
0 回答
46 浏览

angularjs - AngularJS 关于将工厂转换为提供者的建议?

我需要将工厂中的内容注入到配置中,但我知道这是不可能的,只有当我使用提供者时才有可能,所以请任何人都可以建议如何将我的工厂转换为提供者?

非常感谢

多姆

0 投票
0 回答
114 浏览

angularjs - Angular JS:未知提供者:$mdThemingProviderProvider <- $mdThemingProvider

当高对比度模式开启时,我需要使用深色主题并且工作如下:

但是,只有当某些条件为真并且该数据仅在控制器中可用时,我才需要应用.dark() 。有没有办法在控制器的主题上应用.dark()

我试图注入ngMaterial控制器的模块并$mdThemingProvider作为该控制器中的依赖项并复制粘贴上面的代码,但出现以下错误:

未知提供者:$mdThemingProviderProvider <- $mdThemingProvider

0 投票
1 回答
51 浏览

angularjs - 如何使用 angularjs 提供程序创建不同版本的服务

我有一个名为 itemService 的函数。从 shoppingList 控制器获取项目并将其推送到项目数组中,然后返回该数组。

现在我需要创建 2 个 shoppingLists 所以使用 .factory 我设法让两个控制器都获得不同版本的服务,当我通过第一个控制器推送一个项目时,第二个控制器的数组不会得到这个项目,它们现在被溅到了如何我可以使用 .provider 做同样的事情吗

0 投票
0 回答
26 浏览

angularjs - AngularJs - 如何更新工厂内的内部数据?

我的应用程序中有一个工厂,它将环境 uri 数据作为输入参数并返回一个 $resource 对象,如下所示。coreService 是在许多其他 UI 控制器中使用的单例对象。最初,应用程序使用默认配置环境值注册。一旦用户登录,就会触发一个事件,该事件会更改 environmentData 对象。这里的问题是 coreService 仍然保存默认的 environmentData 值并且不获取更新的环境数据。

控制器类调用服务如下 -

需要帮助是想办法在基本 uris 更改时更新 environmentData。如果 environmentData.getAppInfoURI() 返回 "aaa" 并随后更改为 "bbb",则 coreService 仍保留 getAppInfoURI() 的 "aaa" 值