0

Я использую нокаут, и я поставил точку останова на свой метод почтового отправления и правильно выполнил все мои наблюдаемые данные, однако, когда данные переходят к контроллер сторона сервера (после нажатия кнопки сохранения) только два из моих значений передаются со стороны сервера. Поэтому я поставил точку останова на контроллере, и, похоже, он подбирает названия и периоды обслуживания драйверов, а остальные значения равны нулю Периоды обслуживания - это список, когда автомобиль должен обслуживаться 30, 60, 90 дней и т. Д. на ...... вот как я отправляю на контроллер от нокаута NB, обратите внимание, что мой masterViewModel - это мой index.js, и я не пытаюсь опубликовать make и модель, пока мне нужны только значения из моего метода saveInfoПочему мой контроллер mvc не собирает все мои значения с клиентской стороны нокаута на пост

function driverVM() { 
    var drv = this; 

    drv.driverId = ko.observable(0); 
    drv.driverName = ko.observable(""); 
    drv.currentServicePeriods= ko.observable([]); 
    drv.pastServicePeriods =ko.observable([]); 


} 
function vehicleVM{ 
    vvm.regNumber = ko.observable(0); 
    vvm.make = ko.observable(""); 
    vvm.model = ko.observable(""); 
    vvm.DriverDetail = new DriverVM(); 




vvm.saveVehiclDriverInformation = function() { 
     if (!masterViewModel.isAuthenticated()) return; 

     vvm.DriverDetail; 
     vvm.SaveInfo = $.map(masterViewModel.vehicleVM.driverVM., function (item) { 

      return masterViewModel.vehicleVM.driverVM.driverID, masterViewModel.vehicleVM.driverVM.driverName, $("#vehicleID").val(), $("#modelType").val(), masterViewModel.vehicleVM.driverVM.currentServicePeriods, masterViewModel.vehicleVM.driverVM.pastServicePeriods 
     }); 


     $.when(postSecureData("/api/vehicleInfo/", ko.toJSON(vehicleVM.driverVM.SaveInfo))) 
      .done(function() { 
       document.getElementById("save-vehicleINfo-btn").innerHTML = "Saving..."; 
       setTimeout(function() { document.getElementById("save-vehicleInfo-btn").innerHTML = "Save" }, 2500); 
       $.msgGrowl({ 
        type: 'info', 
        title: 'vehicle information', 
        text: 'vehicle details succesfully saved', 
        position: 'bottom-right', 
        lifetime: 3000 
       }); 

      }) 
    }; 
+0

с помощью этого кода происходит множество ошибок и переходящих периодов. у вас есть урезанная скрипка, которая воспроизводит эту проблему? – dfperry

+0

@dperry no fiddle в данный момент, но если вы можете указать генерирующие ошибки начальные и конечные периоды, которые мне нужно настроить, это было бы здорово – anchor

+0

«все время», возможно, было преувеличением, но есть пара: SaveInfo карточный вызов, строка $ .when, и я подумал, что есть еще один, но, похоже, не может найти его – dfperry

ответ

0

Немного о происходящем здесь. Мне кажется, что ko.toJSON(vehicleVM.driverVM.SaveInfo) и SaveInfo не нужны, как определено. SaveInfo лучше всего подходит в качестве обычной функции обертки для создания объекта, как показано ниже:

vvm.saveVehiclDriverInformation = function() { 
    if (!masterViewModel.isAuthenticated()) return; 

    function prepareInfo(){ 
     return { 
      driverID: masterViewModel.vehicleVM.driverVM.driverID(), 
      driverName: masterViewModel.vehicleVM.driverVM.driverName(), 
      vehicleID: $("#vehicleID").val(), 
      modelType: $("#modelType").val(), 
      currentServicePeriods: masterViewModel.vehicleVM.driverVM.currentServicePeriods(), 
      pastServicePeriods: masterViewModel.vehicleVM.driverVM.pastServicePeriods() 
     } 
    }; 



    $.when(postSecureData("/api/vehicleInfo/", prepareInfo())) 
     .done(function() { 
      document.getElementById("save-vehicleINfo-btn").innerHTML = "Saving..."; 
      setTimeout(function() { document.getElementById("save-vehicleInfo-btn").innerHTML = "Save" }, 2500); 
      $.msgGrowl({ 
       type: 'info', 
       title: 'vehicle information', 
       text: 'vehicle details succesfully saved', 
       position: 'bottom-right', 
       lifetime: 3000 
      }); 

     }) 
}; 
+0

спасибо @dperry до сих пор, пробовав ваши методы, я получаю [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], – anchor

+0

извините, их нужно оценить, одна минута – dfperry

+0

oh, есть несколько, казалось бы, ненужных вещей, которые происходят – dfperry