0
我在我的節點應用程序中使用Meetups.com API,並且我試圖返回所有事件類別的JSON列表,但Angular一直返回,「angular.js:13708 TypeError:Meetup.getCategories is不是一個函數」使用Meetup.api的MEAN堆棧應用程序 - 「Meetup.getCategories不是函數」?
這裏是我的活動頁面控制器:
angular
.module("Londate")
.controller("EventsController", EventsController);
EventsController.$inject = ["$state", "TokenService", "$rootScope", "Meetup"];
function EventsController($state, TokenService, $rootScope, Meetup) {
var self = this;
this.mapCenter = { lat: 51.5, lng: -0.1 };
this.category = 1;
this.allCategories = [];
this.all = [];
navigator.geolocation.getCurrentPosition(function(position) {
$rootScope.$evalAsync(function() {
self.mapCenter = {
lat: position.coords.latitude,
lng: position.coords.longitude
}
self.getEvents();
});
});
this.getEvents = function() {
Meetup.getEvents({
lat: self.mapCenter.lat,
lng: self.mapCenter.lng,
category: self.category
})
.then(function(events) {
console.log("EVENTS: " + events);
self.all = events;
})
}
this.getCategories = function() {
Meetup.getCategories({
name: self.name
})
.then(function(categories){
console.log("CATEGORIES: " + categories);
self.allCategories = categories;
})
}
self.getCategories();
}
而在後端的meetup.js控制器:
var request = require('request-promise');
function getEvents(req, res) {
request.get({
url: "https://api.meetup.com/2/open_events",
qs: {
key: process.env.MEETUP_API_KEY,
lat: req.query.lat,
lon: req.query.lng,
category: req.query.category,
radius: req.query.radius || 1,
sign: true
},
json: true
})
.then(function(response) {
res.status(200).json(response.results);
console.log(response);
})
.catch(function(err) {
console.log(err);
res.status(500).json(err);
})
}
function getCategories(req, res) {
request.get({
url: "https://api.meetup.com/2/categories",
qs: {
key: process.env.MEETUP_API_KEY,
name: req.query.name,
sign: true
},
json: true
})
.then(function(response) {
res.status(200).json(response.results);
console.log(response);
})
.catch(function(err) {
console.log(err);
res.status(500).json(err);
})
}
module.exports = {
getEvents: getEvents,
getCategories: getCategories
}
而在前端的meetup.js服務:
angular
.module("Londate")
.service("Meetup", Meetup)
Meetup.inject = ["$http"];
function Meetup($http) {
this.getEvents = function(params) {
return $http({
method: "GET",
url: "/api/meetups",
params: params
})
.then(function(res) {
return res.data;
});
};
}
謝謝!