javascript - Angular 未知提供者,其工厂封装在匿名函数中

标签 javascript angularjs function factory

当我声明使用匿名函数时,我收到工厂的未知提供程序错误(注入(inject)器):

(function () {
    'use strict';

    angular.module('app').factory('errorCodeFactory', errorCodeFactory);

    function errorCodeFactory() {
        var factory = {
            getMessage: getMessage
        };

        return factory;

        function getMessage(errorObject) {
            return "hi";
        };
    };
});

如果我声明时没有将其包装在函数中,则它可以工作:

angular.module('app').factory('errorCodeFactory', function() {
    var factory = {};

    factory.getMessage = function (errorObject) {
        return "hi";
    };
    return factory;
});

不知道为什么第一个例子不起作用,但第二个例子却起作用。我还有其他工厂使用与第一个示例相同的方法并且它们有效。我一定错过了什么。

最佳答案

问题是包装函数末尾缺少一组括号

作品:

(function () {

})();

不起作用:

(function () {

});

关于javascript - Angular 未知提供者,其工厂封装在匿名函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35977183/

相关文章:

javascript - ionic leaflet angularjs 指令 - 通过服务在侧边菜单中切换 tileLayer

Javascript 将数字转换为给定格式

java - 获取 angular.js 文件 net::ERR_ABORTED

javascript - Angularjs ui-select (select2) 不使用 'Controller as' 语法没有被选中

java - Java相关的fold()函数如何实现函数签名?

javascript - 通过axios上传文件到WebApi

JavaScript 将对象添加到数组并进行迭代

javascript - 使用 then 的 Promise 链接

有人可以澄清这段代码吗?

c - 指向带函数的二维数组的指针