我正在尝试以允许我运行函数的方式使用Factory,但是我似乎无法使其正常运行。

在我的控制器中,我想呼叫httpErrorHandler.statusHandlerFunction.errorCallback()

这是我的工厂:

  .factory('httpErrorHandler', ["Restangular", "StorageService",
        function (Restangular, StorageService) {

            return statusHandlerFunction = function errorCallback() {
                return alert("Oops error from server :(");
            }

        }]);


我得到错误:

TypeError:无法读取未定义的属性errorCallback

我也尝试过:

.factory('httpErrorHandler', ["Restangular", "StorageService",
    function (Restangular, StorageService) {

        return function errorCallback() {

            return alert("Oops error from server :(");
        }


    }]);


但是get:undefined不是一个函数

更新

感谢您的回答。最终帮助了我很多:

.factory('httpErrorHandler', function (Restangular, StorageService) {
    return {

        errorCallback: function () {
            return  alert("Oops error from server :(");
        }
    };
})

最佳答案

您的对象表示法有问题。尝试这个:

.factory('httpErrorHandler', ["Restangular", "StorageService",
function (Restangular, StorageService) {

  var factory = {
    statusHandlerFunction: {
      errorCallback: function () {
        return alert("Oops error from server :(");
      }
    }
  }

  return factory;

}]);

09-17 19:42