AngularJS $ http.post возвращает объект

0

У меня есть служба, которая добавляет новую запись в базу данных.

return $http.post('/models/CreateModel', userObj)
                .then(function (res)
                {
                    // Return the new model_id
                    return res.data;
                },
                function (err)
                {
                 //   console.log("THERE WAS AN ERROR");
                });

Значение в res.data является новым номером первичного ключа. Это возвращается контроллеру следующим образом:

$scope.newID = ModelService.addModel(xMdl);

Когда я распечатываю $ scope.newID с помощью console.log, я вижу, что он содержит объект, а не значение. В моей консоли объект выглядит следующим образом:

- d {$$state: Object}
    - $$state: Object
        status:1
        value: 232
      - __proto__: Object
    - __proto__: Object

Как мне получить доступ к значению 232, так как мне нужно обновить идентификатор в угловой модели?

  • 0
    Работает ли он правильно вне Angular? Вы можете попробовать почтальон, чтобы проверить это getpostman.com
  • 2
    Этот объект выглядит как обещание, которое $http.post возвращает ... для доступа к обещанному значению вам нужно сделать .then(function(data){$scope.newID = data}) .
Показать ещё 1 комментарий
Теги:

1 ответ

1
Лучший ответ

Вы возвращаете промисс в свой метод

return $http.post('/models/CreateModel', userObj)

в этом случае вам придется переписать его следующим образом:

//your controller
save = function(){
   var self=this;
   this.service.createModel(this.$scope.mmodel)

            .then(function (res)
            {
                self.$scope.neId = res.data;
            },
            function (err)
            {
             //   console.log("THERE WAS AN ERROR");
            });

}

//service  
createModel = function(model){
    return $http.post('/models/CreateModel', userObj);
};
  • 0
    Я получаю сообщение об ошибке Не могу прочитать свойство 'then' из неопределенного
  • 0
    @ user1024941 Ой, моя вина. исправлена функция createModel. это не вернуло обещание

Ещё вопросы

Сообщество Overcoder
Наверх
Меню