使用module.exports引用另一个函数时继续获取TypeError

时间:2016-09-22 20:06:17

标签: javascript jquery ajax function module

在将新项目(停放的车辆)添加到数据库后,我试图让车把重新渲染页面。我知道用前端框架做这个会更好,但是现在我使用的是jQuery。

我不断收到的错误消息:

  

ui.js:18未捕获TypeError:index.getVehicles不是函数

我的index.js文件:

const app = require('./apiurl.js');
const events = require('./events.js');
const ui = require('./ui.js');


const displayVehicles = function(vehicles){
  const display = require('./vehicles.handlebars');
  $('.content').empty().append(display({ vehicles }));
  events.addHandlers();
};

const getVehicles = function(failure) {
  $.ajax({
    method: 'GET',
    url: app.api + '/vehicles/',
  }).done(function(data){
      displayVehicles(data.vehicles);
    })
    .fail(failure);
};

$(() => {
  getVehicles(ui.failure());
});


module.exports = {
  getVehicles,
  displayVehicles
};

单击提交新项目按钮时调用的AJAX。 ' ui.addVehicleSuccess'作为“成功”传递进来参数。

const addVehicle = (success, failure, data) => {
  $.ajax({
    method: 'POST',
    url: app.api + '/vehicles/',
    dataType: 'json',
    dataProcessing: false,
    data
  }).done(success)
    .fail(failure);
};

[编辑 - 添加完整的ui文件,以显示我需要index.js]我的ui.js文件:

const index = require('./index.js');


const success = (data) => {
  console.log(data);
};

const failure = (error) => {
  console.log(error);
};

const addVehicleSuccess = (data) => {
  console.log(data);
  index.getVehicles();
};


module.exports = {
  failure,
  success,
  addVehicleSuccess
};

我不知道它为什么说index.getVehicles不是一个函数。它适用于页面加载,而不是在添加项目时重新加载。任何帮助将不胜感激。

0 个答案:

没有答案