我开始乱用角度js。
我写了这个工厂
mbg.factory('pollCall', function ($http, pollSettings) {
return function (callback) {
$http({
method: 'GET', url: pollSettings.getUrl()
}).success(function (response) {
callback(response);
}).error(function () {
callback(false);
});
};
});
从中可以看出,它返回的是函数而不是“return {};”宾语。这个例子有效,但我在考虑是否可以设计一个工厂,以及以后它是否会破坏我的应用程序?
答案 0 :(得分:1)
您可以使用工厂返回任何内容并返回功能正常。但在这种情况下,不需要返回功能。您应该只使用返回$http
调用返回的promise值。
mbg.factory('pollCall', function ($http, pollSettings) {
return {
getData:function() {
return $http({method: 'GET', url: pollSettings.getUrl()});
}
};
}
在控制器中,只需使用与在服务中相同的成功和错误回调。
pollCall.getData().success(...).error(...);