首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Meetup.api的平均堆栈应用程序-- "Meetup.getCategories不是一个函数“?

使用Meetup.api的平均堆栈应用程序-- "Meetup.getCategories不是一个函数“?
EN

Stack Overflow用户
提问于 2016-09-14 21:31:24
回答 1查看 48关注 0票数 0

我在节点应用程序中使用JSON,并试图返回所有事件类别的Meetups.com列表,但Angular一直返回"angular.js:13708 TypeError: Meetup.getCategories is not a function“

这是我的事件页面的控制器:

代码语言:javascript
复制
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控制器:

代码语言:javascript
复制
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服务:

代码语言:javascript
复制
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;
    });
  };
}

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-09-14 22:38:47

解决了!我忽略了在服务中包含getCategories,如下所示:

代码语言:javascript
复制
angular
  .module("Londate")
  .service("Meetup", Meetup)

Meetup.inject = ["$http"];
function Meetup($http) {
  this.getEvents = function(params) {
    return $http({
      method: "GET",
      url: "/api/meetups/events",
      params: params
    })
    .then(function(res) {
      return res.data;
    });
  };

  this.getCategories = function() {
    return $http({
      method: "GET",
      url: "/api/meetups/categories"
    })
    .then(function(res) {
      return res.data;
    });
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39491828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档