2016-01-05 3 views
0

На странице просмотра html есть форма со столом, а когда я представляю форму, два объекта создаются cvm и графики для формы и таблицы. Я как-то хочу, чтобы графики (которые были массивом) были связаны с формой cvm. поэтому я попробовал этот путь ...как отправить http req с несколькими параметрами в angularjs, mongoose


Здесь определена модель

$scope.addSchedule=function(schedule) 
     { 
     console.log(schedule.startDate); 
     console.log(schedule.location); 
     $scope.schedules.push({ 
     startDate: schedule.startDate, 
     location: schedule.location 
     }); 
     schedule.startDate=''; 
     schedule.location=''; 
     }; 
    var inData={'cvm': $scope.cvm,'schedules': $scope.schedules}; 
    $scope.addCvm=function() 
     { 
     console.log($scope.cvm); 
     console.log($scope.schedules); 
     $http.post('/cvmApi',inData).success(function(response) { 
     console.log(response); 
     refresh(); 
     }); 
     }; 

стороне сервера Подключение
я думаю, Somthing я пропустил в этой части

/* POST */ 
router.post('/', function(req, res, next) 
    { 
    console.log("Cvm api post '/'"); 
    console.log("retrieving:: " + req.body); 
    cvmModel.create(req.body, function (err, post) { 
    console.log("saving:: " + post); 
    if (err) return next(err); 
    res.json(post); 
     }); 
    }); 

Вот моя схема для mongodb

   'use strict'; 

       var mongoose = require('mongoose'); 

       var cvmSchema = new mongoose.Schema({ 
       visitOrganization: { type: String }, 
       visitAgenda: { type: String }, 
       accountManager:  { type: String }, 
       visitCoordinator: { type: String }, 
       schedules:[{ 
        startDate: String, 
        location: String 
       }] 
       }); 


       module.exports = mongoose.model('visit', cvmSchema); 


плз помощь !! спасибо заранее

+0

базы на вашей схеме '$ scope.schedules' должны быть массивом в '$ scope.cvm', поэтому ваш inData должен выглядеть следующим образом: $ scope.cvm.schedules = $ scope.schedules; var inData = $ scope.cvm' – somallg

+0

любая ошибка, которую вы получаете? – ranakrunal9

ответ

0

Я думаю, вы должны попробовать ниже изменения:

//Change addCvm function 

$scope.addCvm = function(){ 
    var inData  = $scope.cvm; 
    inData.schedules = $scope.schedules; 

    console.log(inData); 

    $http.post('/cvmApi',inData).success(function(response) { 
     console.log(response); 
     refresh(); 
    }); 
}; 

// Server Side API Code 

router.post('/cvmApi', function(req, res, next) { 
    console.log("Cvm api post '/'"); 
    console.log("retrieving:: " + req.body); 
    cvmModel.create(req.body, function (err, post) { 
    console.log("saving:: " + post); 
    if (err) return next(err); 
     res.json(post); 
    }); 
}); 
+0

hey thanku soo much rana Я попробовал bt hit vt ошибку ...! в моей консоли Chrome ...-> «Объект {visitOrganization:« hyd, Telangana, India », visitAgenda:« somthing », accountManager:« [email protected] », visitCoordinator:« sfdxf[email protected] », расписания: Массив [1]} ' POST http: // localhost: 3010/cvmApi 500 (Внутренняя ошибка сервера) XHR завершена загрузка: POST «http: // localhost: 3010/cvmApi» ...._ wat to do_ –

+0

его потому что $ scope.schedules не имеет действительного значения в соответствии с вашей схемой. Попробуйте определить $ scope.schedules = []; сначала в вашем контроллере, и, если возможно, дайте мне полный код контроллера, чтобы я мог получить больше идеи или попытаться изменить вещи для $ scope.schedules, чтобы установить правильное значение. – ranakrunal9

+0

comeon i dint miss '$ scope.schedules = []; '..... i jus интересно, если какая-нибудь рыбная схема vt определена? bcose я вижу, что контроллер передает данные в виде массива (в консоли) bt на сервере end vt mongoose r req.body idk ??? ..... –

0

Дело в том, я впадина понимаю, моя переменная STARTDATE не в типе строки в моем HTML-страницы, как я использую некоторые плагины даты. ... Су я вот он работал блестяще ... функция

addCvm контроллер благодаря Рана ;-)

$scope.schedules=[]; 
$scope.addCvm = function(){ 
    var inData  = $scope.cvm; 
    inData.schedules = $scope.schedules; 

    console.log(inData); 

    $http.post('/cvmApi',inData).success(function(response) { 
     console.log(response); 
     refresh(); 
    }); 
}; 

стороне сервера Api

router.post('/', function(req, res, next) { 
    console.log("Cvm api post '/'"); 
    console.log("retrieving:: " + req.body); 
    cvmModel.create(req.body, function (err, post) { 
    console.log("saving:: " + post); 
    if (err) return next(err); 
    res.json(post); 
    }); 
}); 

может быть не обязательно, но я изменил мою схему, хотя ....

var cvmSchema = new mongoose.Schema({ 
visitOrganization: { type: String }, 
visitAgenda: { type: String }, 
accountManager:  { type: String }, 
visitCoordinator: { type: String }, 
schedules: [{ 
    dateStart: { type:String }, 
    locationHere: { type: String } 
}] 
}); 
Смежные вопросы