修复 AngularJS 错误:提供程序必须从 $get 工厂方法返回值

2023-12-29

当我使用下面的代码时,出现以下错误:

提供者“登录”必须从 $get 工厂方法返回一个值。

我已经查看了 stackoverflow 帖子here https://stackoverflow.com/questions/27738903/provider-xx-must-return-a-value-from-get-factory-method-in-angularjs and here https://stackoverflow.com/questions/2846283/what-are-the-rules-for-javascripts-automatic-semicolon-insertion-asi,但无法弄清楚我做错了什么。

myApp.factory('Login', function($location, $firebaseAuth, Ref, Auth) {
    var authData = Ref.getAuth();

   if (authData) {console.log('already logged in with ' + authData.uid)} else {

      return Auth.$authAnonymously({rememberMe: true}).then(redirect, showError);

      function redirect() {
      $location.path('/account');
    }

      function showError(err) {
      Login.err = err;
    }
  }
});

按照factory你必须返回一个对象。由于您没有返回任何内容,这意味着其他服务/控制器无法使用此服务。

如果您只是检查身份验证,它必须位于您的身份验证服务内,并且必须是 IIFE 函数。这将检查并重定向用户。

例如:

在任一 Auth/Ref 服务中,创建一个 IIFE

(function() {
var authData = Ref.getAuth();

   if (authData) {console.log('already logged in with ' + authData.uid)} else {

      return Auth.$authAnonymously({rememberMe: true}).then(redirect, showError);

      function redirect() {
      $location.path('/account');
    }

      function showError(err) {
      Login.err = err;
    }
  }
})();

否则在里面插入代码init()方法并在您的服务中调用它。所以这只会运行一次。

当您想要公开单例接口以供应用程序的其他部分使用时,您必须使用服务。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修复 AngularJS 错误:提供程序必须从 $get 工厂方法返回值 的相关文章

  • 位置特征检测:固定

    我正在尝试找到一个脚本来检测设备是否放置position fixed元素相对于视口而不是整个文档 目前 标准桌面浏览器和 Mobile Safari 适用于 iOS 5 都是这样做的 而 Android 设备则相对于整个文档放置固定元素 我
  • 如何在没有 jQuery 的情况下删除 Javascript 中的元素

    我试图通过以下方式从 DOM 中删除 Div a 标签嵌套在其中 我想我正在寻找的是 jQuery 的纯 Javascript 版本 div remove 这是html设置 div a href Click me to remove the
  • 使用 Angular 指令禁用文本选择

    我正在学习 JavaScript 和 AngularJS 我想使用 Angular Directive 禁用文本选择 我有该函数的 JavaScript 代码 function clearSelection if document sele
  • .push() 将多个对象放入 JavaScript 数组中返回“未定义”

    当我将项目添加到beats数组然后console log用户时 我得到了数组中正确的项目数 但是当我检查 length 时 我总是得到 1 尝试调用索引总是会给我 未定义 如下所示 Tom beats 1 我想我错过了一些明显的东西 但这让
  • 通过 JavaScript 获取表单名称

    我有一个简单的问题 但我在网上找不到好的解决方案 我有这个 HTML 代码
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • 为什么 setTimeout 在 Chrome 中触发两次,而在 IE 或 Firefox 中则不然?

    有人能告诉我为什么 javascript 函数 生成新号码 在 Chrome 中触发两次 但在 IE 或 Firefox 中则不会 使用 Chrome 20 0 1132 57 IE9 和 Firefox 13
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • $exceptionHandler 中的 $location - 依赖冲突

    我正在尝试实现一个非常标准的任务 当发生异常时 重定向到我的 error page 代码的简化形式如下所示 app factory exceptionHandler location function location return fun
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • React Router v4 不渲染组件

    React Router v4 渲染组件存在问题 在应用程序初始加载时 它将呈现与 URL 相对应的正确组件 但是 任何后续的组件Link单击不会呈现所需的组件 图书馆 反应路由器 4 2 2 https reacttraining com
  • 如何使用角度材料在具有可扩展行的表格中创建嵌套垫表

    我有以下数据 id c9d5ab1a subdomain wing domain aircraft part id c9d5ab1a info mimetype application json info dependent parent
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 改变 JavaScript 中的顶部填充

    以下是我在 css 中设置顶部填充的方法 body font size font size px margin 0 padding 100px 0 20px 0 width 100 important 如何使用最简单的 javascript
  • 传递给 $resource 的 @id 是什么?

    resource entries id id id update method PUT id是什么 在 资源上doc page http docs angularjs org api ngResource 24resource下面有人这么说
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • Flot 库将 y 轴设置为最小值 0 和最大值 24

    如何将 y 轴设置在 0 到 24 的范围内 这是我的代码 j plot j placeholder d1 xaxis mode time min new Date 2010 11 01 getTime max new Date 2011
  • 如何从 json 文件创建模型? (ExtJS)

    这是我想使用 json 文件创建的模型 Ext define Users extend Ext data Model fields name user id type int name user name type string 为了根据服

随机推荐

  • 在 Rails 3 中使用标记国际化整个文本

    例如 Rails 3 中的服务条款文档国际化的最佳实践是什么 我可以想到两个选择 为每个区域设置创建一个部分 并根据当前用户的区域设置选择要加载的部分 li li li li 这些似乎都不是一个好的解决方案 有任何想法吗 有一些解决方案 但
  • jQuery 切换显示/隐藏多个 DIV ID

    CODE document ready function toggle hide show click function toggle toggle slow this attr src images checkmark2 jpg func
  • 特定键上的部分<>

    我有一个描述 mongodb 数据库数据的打字稿界面 例如 interface Foo id string name string fish id string name string 我有一种方法可以构建要插入数据库的数据 例如 func
  • 如何在 Swift 中构造多个 HTTP 请求?

    我对 Swift 和编程都很陌生 我非常热衷于以正确的方式学习 因此 任何额外的提示或评论总是值得赞赏的 我正在向 api 发出 HTTP 请求 效果很好 问题是每个请求最多只能有 100 个结果 我可以设置一个可选的偏移量和限制 如果我给
  • 如何在 MATLAB 中去除图像中的高斯噪声?

    我正在尝试从图像中去除高斯噪声 我自己使用以下方法添加了噪音 nImg imnoise img gaussian 0 0 01 I now need to remove the noise using my own filter or at
  • 按 SPARQL 中的日期范围过滤

    我正在使用 Jena 的 SPARQL 引擎 并尝试编写一个查询来过滤日期范围 因为我需要在固定日期之后查找属性的值 我的日期属性采用以下格式 Fri May 23 10 20 13 IST 2014 如何编写 SPARQL 查询来获取日期
  • 为什么要使用 getter 和 setter 方法来设置类属性? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么要使用 getter 和 setter https stackoverflow com questions 1568091 why use getters and setters 在 C ASP
  • Protractor - 如何为不同的测试重用相同的规范文件

    在我的量角器中conf js文件 我想多次重复使用相同的规范文件 然而 这似乎不可能 一些背景 我们从 JSON 文件中读取测试用例 启动报告 然后测试网格结果和各种 DOM 元素 所有报告都具有相同的格式 主要差异在于报告标题 数据列 实
  • Swift 中如何检查字符串是否包含字母? [复制]

    这个问题在这里已经有答案了 我正在尝试检查特定字符串是否包含字母 到目前为止我遇到过NSCharacterSet letterCharacterSet 作为一组字母 但我无法检查该组中的字符是否在给定的字符串中 当我使用此代码时 我收到一条
  • 无法访问 Blazor Server 3.0 中已处置的对象

    我有一个 Blazor 页面 其中包含以下表单提交按钮
  • 如何在詹金斯管道中抛出异常?

    我已经使用 try catch 块处理了 Jenkins 管道步骤 我想在某些情况下手动抛出异常 但它显示以下错误 org jenkinsci plugins scriptsecurity sandbox RejectedAccessExc
  • Silverlight 是否比 JavaScript 具有性能优势?

    在最近一次有关 Silverlight 的讨论中 提到了速度的优势 Silverlight 的论点是 它在浏览器中的性能比 Javascript 更好 因为它是编译 和托管 代码 然后有人指出 这一优势仅适用于 IE 因为与 Chrome
  • 如何编写代码来为android中的数组创建共享首选项?

    我正在工作android 我想在我的代码中进行共享首选项 但我不知道如何对数组进行共享首选项以及如何在另一个类中使用该共享首选项的值 这是我在一个 for 循环中的数组 urls i sitesList getWebsite get i 我
  • 使用 Week No 在 MySql 中获取一周的第一天

    如何获取周数可用的给定周的第一天 例如 当我写这篇文章时 我们位于WEEK 29 我想编写一个将返回的 MySQL 查询7 月 18 日星期日使用这个第 29 周作为唯一可用的参数 这是根据当前日期获取一周第一天和一周最后一天的准确方法 a
  • Chrome 扩展程序 .pem 文件有什么用?

    当我创建第一个 Google Chrome 扩展程序时 我按照迷宫般的说明进行操作 最终成功启动了扩展程序 我还成为了一个神秘的 pem 文件的新所有者 我被警告将其放置在安全的地方并且永远不要丢失 我认真地将文件放在安全的地方 并可能在处
  • Android 全局变量在 Service 中不起作用

    我很困惑为什么我无法从我的服务访问我的全局变量 我可以从其他活动中访问它们就好了 全局变量类 public class Global extends Application private static final String TAG G
  • C# MS Exchange 将电子邮件移动到文件夹

    Added 感谢用户 grapkulec 我正在使用 using Microsoft Exchange WebServices Data 我正在尝试将电子邮件移动到我已在 Outlook 中创建的文件夹 使用 MS Exchange 到目前
  • 使用节点的字符串表示形式访问 stdClass 对象上的嵌套属性

    给定一个保存该字符串的变量 property parent gt requestdata gt inputs gt firstname 还有一个对象 obj gt parent gt requestdata gt inputs gt fir
  • 获取忽略 Null 或零值的 AVG

    我怎样才能得到AVG忽略一列NULL和零值 我有三列来获取它们的平均值 我尝试使用以下脚本 SELECT distinct AVG cast ISNULL a SecurityW 0 as bigint as Average1 AVG ca
  • 修复 AngularJS 错误:提供程序必须从 $get 工厂方法返回值

    当我使用下面的代码时 出现以下错误 提供者 登录 必须从 get 工厂方法返回一个值 我已经查看了 stackoverflow 帖子here https stackoverflow com questions 27738903 provid