繁体   English   中英

Provider'xx'必须从AngularJs中的$ get factory方法返回一个值

[英]Provider 'xx' must return a value from $get factory method in AngularJs

我写了一个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
a + b;

// is transformed by ASI into

return; 
a + b;

因此,您必须在返回前插入{不是在下一行。

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

在您的情况下,将始终返回未定义的值。 但在其他情况下,问题可能也是您从工厂返回null或未定义的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM