отображение входных значений даже после отображения результатов

У меня есть html-страница, которая имеет два поля From dateи To date. При нажатии на кнопку Отправить я могу получить информацию, основанную на датах,и отобразить ее на той же странице, но мои From dateTO dateполя и становятся пустыми. Итак, как я удерживаю значения, чтобы они сохранялись в соответствующих полях даже после отображения информации.

HTML:

  <ion-content ng-init=onViewloaded()>    
    From:
    <input type="date" ng-model="fromDate">
    To:
    <input type="date" ng-model="toDate">
    <button type="submit" ng-click="Save()">Submit</button><br>
    Data:
    {{receivedData.name}}
    {{receivedData.information}}
   </ion-content>

Контроллер:

    $scope.receivedData;

    $scope.onViewloaded=function()
   {
     bulkDateService.getData($scope.RetrievedData);
   }
   $scope.RetrievedData = function(data,error)
  {
    $scope.receivedData=data;
  }
    $scope.save=function()
   {
    var dataToSend={'from':$scope.fromDate, 'to':$scope.toDate};
    bulkDateService.postData(dataToSend,error);
   }

Так чего же мне не хватает для того, чтобы отобразить поля From dateand To dateв их полях даже после загрузки данных?

1 ответ

  1. Так как вы передаете объекты по ссылкамvar dataToSend={'from':$scope.fromDate, 'to':$scope.toDate};, вероятно, они удаляются или изменяются внутри функции theis bulkDateService.postData(dataToSend,error);(при изменении поля ‘to’ и ‘from’ of dataToSend.

    Чтобы попробовать это, отправьте копию дат вместо ссылки и посмотрите, устранит ли это вашу проблему. Вроде этого:

    var dataToSend={'from':angular.copy($scope.fromDate), 'to':angular.copy($scope.toDate)};
    

    И попробуйте избежать директивы ng-init, держите логику регулятора далеко от взгляда когда вы можете. Для этого можно просто вызвать функцию на контроллере:

    $scope.onViewloaded=function()
       {
         bulkDateService.getData($scope.RetrievedData);
       }
    $scope.onViewloaded();
    

    Или даже лучше, используйте события представления ionic: Ionic Docs

    $scope.$on("$ionicView.beforeEnter", function(event, data){
       $scope.onViewloaded();
    });