当前位置: 首页 > 面试题库 >

提供者“ xx”必须在AngularJs中从$ get工厂方法返回一个值

闻人飞白
2023-03-14
问题内容

我写了angularjs如下工厂

module.factory('LogService', function () {

    function log(msg) {
        console.log("Rahkaran:" + new Date() + "::" + msg);
    }

    return 
    {
        log: log
    };

});

但是我一直收到这个错误

Provider 'LogService' must return a value from $get factory method

我搜索了该错误,但找不到任何解决方案。

碰巧我将return声明更改为此

return{
    log: log
};

错误消失了!

{在前return一行或下一行之间有什么区别吗?


问题答案:

这称为 自动分号插入

return语句受自动分号插入(ASI)的影响。;return关键字和允许的表达式之间没有行终止符。

return
a + b;

// is transformed by ASI into

return; 
a + b;

因此,您必须{在return前面插入,而 不要在下一行 插入

参考: https :
//developer.mozilla.org/zh-
CN/docs/Web/JavaScript/Reference/Statements/return



 类似资料:
  • 问题内容: 我有一个单独模块的工厂,我想将其注入模块的提供程序中,但是却不断收到未知的提供程序错误。我究竟做错了什么? 我想注入的是: 我试图注入的地方: 导致 问题答案: 我认为是因为所有提供程序都在工厂之前实例化,因此提供程序仅需依赖其他提供程序。 作为一种解决方法,我正在使用创建模块的方法。一个可以完成您想完成的任务的插件:http ://plnkr.co/edit/g1M7BIKJkjSx

  • 问题内容: 我第一次尝试AngularJS。我正在使用工厂从http-get请求中获取JSON数据,但是在完成ajax请求之前,该对象返回为空。 厂: 控制器: 这就是我想出的。当控制器设置$ scope.photos时,该值为空,就好像它在填充ajax响应之前返回photos数组。 问题答案: 您应该修改代码以返回承诺并使用控制器中的值,请参见伪修改后的代码 和控制器-

  • 问题内容: 我一直在研究使用PostgreSQL数据库的NodeJS项目。我正在尝试实现向数据库的迁移。另外,使用Sequelize。设置迁移文件夹和配置后,运行db:migrate时会引发错误 错误是:“从v4.0.0开始,必须明确提供方言” 问题答案: 对我来说,解决方案基于我为变量设置的内容。 如果没有为该变量设置任何内容,请尝试使用以下命令进行设置: 如果值 是 存在,请确保你在你的con

  • 编写一个名为season的方法,该方法使用两个整数作为代表月份和日期的参数,并返回一个字符串,指示该月份和日期的季节。假设月份被指定为1到12之间的整数(1代表一月,2代表二月,依此类推),并且月份的日期是1到31之间的数字。 如果日期落在12/16和3/15之间,你应该返回“冬天”。如果日期落在3/16和6/15之间,则应返回“spring”。如果日期介于6/16和9/15之间,则应返回“sum

  • 我正在创建一个谷歌数据流管道使用Apache梁2. x 基本上,我有一个文本文件,每一行都包含一个英语句子。 我试图调用谷歌NLP(情感)API为每一个新的行/句子。 因此,我有一个调用NLP API的函数: 我用ParDo为每个句子调用这个函数。我假设,下面的ParDo将自动为文本文件中的每一行调用NLP情感api(基本上我不必遍历文本文件中的每一行!) 但在执行数据流后,我得到了这个错误: T

  • 问题内容: 在我遵循的方法: 我可以从HTML调用它,例如: 如您所见,如果我得到回报 这是实用程序,因此我想将其定义为 没有例外 当我尝试这样称呼它时: 没发生什么事。 **我已添加到控制器。 如何从HTML调用工厂方法? (*如果不清楚,欢迎您更改/编辑我的问题) 谢谢, 问题答案: 好吧,您实际上不应该这样做…但是您 可以 做的是将服务对象放在$ scope的一个属性中,然后从那里调用它。