我是AngularJs的新手,我想从我的服务中执行多个请求。 到目前为止,我只设法执行了一个请求:
我的服务文件:
ticketServices.factory('Category', ['$resource',
function($resource){
var resource = $resource(
baseUrl('/admin/ticket/?format=json'), {}, {
query: {
method:'GET',
params: {},
isObject: true
}
});
return resource;
}
]);
我的控制器文件:
ticketApp.controller('ticketCtrl', ['$scope', 'Category', function ($scope, Category) {
Category.query();
}]);
我希望能够这样做:
Category.fecthCities();
Category.fetchMessage();
但我无法弄清楚如何将这些请求添加到我的服务中。
任何帮助都将不胜感激。
答案 0 :(得分:2)
如果我理解你,那应该是:
<强> JS 强>
fessmodule.controller('fessCntrl', function ($scope, Data) {
$scope.alertSwap1 = function () {
Data.fecthCities()
.then(function (result) {
$scope.cities = result;
}, function (result) {
alert("Error: No data returned");
});
};
$scope.alertSwap2 = function () {
Data.fetchMessage()
.then(function (result) {
$scope.message = result;
}, function (result) {
alert("Error: No data returned");
});
};
});
fessmodule.$inject = ['$scope', 'Data'];
fessmodule.factory('Data', ['$resource','$q', function($resource, $q) {
var cities = [
{
"city": "Tel Aviv"
}
];
var message = [
{
"MyMessage": "Hello mate"
}
];
var factory = {
fecthCities: function () {
var deferred = $q.defer();
deferred.resolve(cities);
return deferred.promise;
},
fetchMessage: function () {
var deferred = $q.defer();
deferred.resolve(message);
return deferred.promise;
}
}
return factory;
}]);
工厂有两种方法:fecthCities
和etchMessage
。
您可以使用GET资源替换静态var cities /消息。
演示 Fiddle