$ http.put не обновляет модель

#javascript #angularjs #mean-stack #mean

#javascript #angularjs #означает-стек #имею в виду

Вопрос:

Я пытаюсь изучить СРЕДНИЙ стек и научиться использовать службу $ http.

В настоящее время у меня есть глобальная проверка, которая предполагает обновление моей модели Sprints, которая выглядит так:

 var SprintSchema = new Schema({
  tasks: [{
    type: String,
    ref: 'Task'
  }],
  name: {
    type: String
  },
  start: {
    type: Date
  },
  end: {
    type: Date
  },
  active: Boolean
});  

Следующий контроллер должен обновлять модель Sprint по запросу и при консоли.зарегистрируйте переменную в моей функции успеха, она выглядит так, как я ожидал, что она пройдет, но на самом деле это не приводит к обновлению моей модели. Ниже приведен мой код и пример console.log.

 'use strict';

angular.module('inBucktApp')
  .service('VariableService', function () {
    // AngularJS will instantiate a singleton by calling "new" on this function
        var ticketId = 'noTicketYet';
        var ticketAssigneeName  = 'noTicketNameYet';

        return {
            getPropertyId: function () {
                return ticketId;

            },
            getPropertyName: function () {
                return ticketAssigneeName;

            }
            ,
            setProperty: function(value, valueName) {
                ticketId = value;
                ticketAssigneeName  = valueName;
            }
        };
      })
    .run(['$rootScope', '$http', 'socket', 'VariableService', function($rootScope, $http, socket, VariableService) {

        $rootScope.sprintStart;

        $http.get('/api/sprints').success(function(sprints) {

          $rootScope.sprints = sprints.pop();

          $rootScope.sprintStart = new Date($rootScope.sprints.start);
          $rootScope.sprintEnd = new Date($rootScope.sprints.end);

          socket.syncUpdates('sprints', $rootScope.sprints);


          $http.get('/api/tasks').success(function(task) {
            $rootScope.task = task;
            $rootScope.taskPop = _.flatten($rootScope.task);
            $rootScope.taskPopAgain = $rootScope.task.pop();

            socket.syncUpdates('task', $rootScope.task);
            
        $rootScope.updateTicket = function(){


        //Goes through the entire array and check each element based on critera.
        var taskIdsToAdd = [];

        for(var i = 0; i < $rootScope.taskPop.length; i  ){
          var taskFind = $rootScope.taskPop[i];
          //Logic if ticket is not in the sprint
          if ((new Date(taskFind.start) >= $rootScope.sprintStart)  amp;amp; (new Date(taskFind.start) <= $rootScope.sprintEnd)){
            taskFind.sprint = true;

            taskIdsToAdd.push(taskFind._id);
            $rootScope.sprints.tasks.push(taskFind._id);

           $http.put("/api/tasks/" taskFind._id,taskFind).success(function(task){
             console.log('Logic 1 Ran!');
             console.log($rootScope.sprintStart);
            //  socket.syncUpdates('taskPopAgain', taskFindPopAgain);
           });
           $http.put("/api/sprints/" $rootScope.sprints._id,$rootScope.sprints).success(function(sprints){
             console.log('Logic 2 Ran!');
             console.log($rootScope.sprintStart);
             console.log(sprints)
           });
           console.log($rootScope.sprints);
         } else{
           console.log('this doesnt work first');
         };


         //Logic if ticket is not in the sprint
         if (new Date(taskFind.start) < $rootScope.sprintStart  ||  new Date(taskFind.start) > $rootScope.sprintEnd){
           taskFind.sprint = false;
           $http.put("/api/tasks/" taskFind._id,taskFind).success(function(task){
             console.log(task);
           });

         }else{
           console.log('this doesnt work');
         };
        }
        };
        $rootScope.updateTicket();
        });
        });
    }]);  

Консоль.Журнал console.log (спринты)

Консоль.Журнал console.log (спринты)

У кого-нибудь есть идеи, что я здесь делаю неправильно?

Спасибо за помощь, ребята.

Комментарии:

1. поскольку вы ничего не делаете с большинством ответов, трудно сказать, в чем ваша проблема

2. Показать представление. Проблема может быть в $rootScope.sprints. Возможно, вы ожидаете массив, но на самом деле это объект.