2015-08-05 3 views
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

ли работа должным образом вне угловому? Вы можете попробовать почтальон, чтобы проверить это https://www.getpostman.com/ – Artiom

+2

Этот объект кажется обещанием, что '$ http.post' возвращает ... для доступа к обещанному значению, вам нужно сделать' .then (функция (данные) {$ scope.newID = data}) '. –

+0

Да, он работает правильно из углового. И, как вы можете видеть, я уже использую функцию .then. – user1024941

ответ

1

Вы возвращаетесь prommise в методе

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

в этом случае вы должны retwrite его в следующем порядке:

//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' of undefined – user1024941

+0

@ user1024941 oops, моя ошибка. фиксированная функция createModel. он не возвращал промах – Artiom