我正试图以一种允许我运行功能的方式使用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 :(");
}
}]);
但得到:undefined不是函数
更新
感谢您的回答。最终帮助了我:
.factory('httpErrorHandler', function (Restangular, StorageService) {
return {
errorCallback: function () {
return alert("Oops error from server :(");
}
};
})
答案 0 :(得分:1)
你没有得到那么好的退货声明。试试这个:
.factory('httpErrorHandler', ["Restangular", "StorageService",
function (Restangular, StorageService) {
var exports = {}
exports.errorCallback = function() {
return alert("Oops error from server :(");
}
return exports;
}
]);
用它来代替:
httpErrorHandler.errorCallback();
这种方式更容易阅读,您可以继续向导出对象添加方法并在最后返回它。
答案 1 :(得分:1)
您的对象表示法有问题。试试这个:
.factory('httpErrorHandler', ["Restangular", "StorageService",
function (Restangular, StorageService) {
var factory = {
statusHandlerFunction: {
errorCallback: function () {
return alert("Oops error from server :(");
}
}
}
return factory;
}]);