工厂包含在匿名函数中的角度未知提供程序

时间:2016-03-13 23:24:54

标签: javascript angularjs function factory

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

(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;
});

不确定为什么第一个例子不起作用但第二个例子不起作用。我也有其他工厂使用与第一个例子相同的方法,他们工作。我一定错过了什么。

1 个答案:

答案 0 :(得分:2)

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

使用:

public int score = 0;
public int triggerCounter = 0;

void OnTriggerEnter(Collider other)
{
    if(other.gameObject.tag == "trigger1")
    {
        score++;
        triggerCounter++;
    }
}

void OnTriggerExit(Collider other)
{
    if(other.gameObject.tag == "trigger1")
    {
        triggerCounter--;
    }
}

void Update()
{
    if(triggerCounter <= 0)
    {
        score = 0;
        triggerCounter = 0;      // just for savety
    }
}

不起作用:

NODE_EXPR
         NODE_INT_LIT
         NODE_OPERATOR_PLUS
         NODE_INT_LIT

NODE_IF_STMT
            NODE_EXPR
                     NODE_INT_LIT
                     NODE_OPERATOR_TRUTH_EQ
                     NODE_INT_LIT
            NODE_BODY
                     NODE_KYWD_RETURN