0

Я не уверен, что в этом плохого, но как-то не в состоянии прочитать правильное значение $ scope.

Вот мой код на контроллер ->

$scope.verifyMobile = SearchFactory.verify.query({uuid: uuid}); 

JSON, возвращаемый службой отдыха есть ->

verifyNumber -- > {"id":1,"uuid":"2222","phoneNumber":"782941768355"} 

Я преобразовать POJO в JSON с помощью gson.toString (verifyNumber Java класс);

Но когда я пытаюсь проверить значение phonenumber после вызова службы на контроллере, он всегда приходит как неопределенный. кто-нибудь может помочь. когда я жестко задал значение для возвращаемого JSON, он работает нормально, но не с сервисом.

alert(JSON.stringify($scope.verifyMobile).uuid); 
+0

здесь недостаточно информации, чтобы воспроизвести вашу проблему. В вашем вопросе вы говорите, что вы «проверяете значение« phonenumber », но, # 1 это' phoneNumber' и # 2, ваше предупреждение печатает 'uuid', а не' phonenumber'. – Claies

+0

@Claies - вы можете использовать phoneNumber istead uuid. все приходит, решает мою проблему. 2 часа я потратил и не могу :( – AngryJS

+0

, но что именно вы спрашиваете здесь? Вы говорите, что он работает, когда вы жестко указываете его, но не когда вы совершаете служебный вызов, но вы не указали код для этой услуги. – Claies

ответ

1

Вы не используете $resource правильно. Из Angular Documentation for $resource:

методы действий на объект класса или объект экземпляра может быть вызван со следующими параметрами:

• HTTP GET "класс" действия: Resource.action([parameters], [success], [error])

• не-GET " класс»действия: Resource.action([parameters], postData, [success], [error])

• не-GET действия экземпляра: instance.$action([parameters], [success], [error])

query() является GET «класс» действие, поэтому правильный вызов будет:

SearchFactory.verify.query({uuid: uuid}, function(data){ 
    //do something here on successful data retrieval 
    $scope.verifyMobile = data; 
}, function(){ 
    //do something here on failure 
}); 

Стоит отметить, что первоначальный вызов делает на самом деле работает, а потому, что это асинхронная вызов, что возвращается это обещание, а не фактические данные.

Также стоит отметить, что стандартные действия HTTP для $resource выглядеть следующим образом:

{ 'get': {method:'GET'}, 
    'save': {method:'POST'}, 
    'query': {method:'GET', isArray:true}, 
    'remove': {method:'DELETE'}, 
    'delete': {method:'DELETE'} }; 

Таким образом, вы должны рассмотреть возможность использования get вместо query при получении одного значения, а не изменять свойство queryisArray, как только возможно.

+0

Ты мужчина! Готово! он работает сейчас! Потрясающие! – AngryJS

+0

Я добавил немного больше информации о ответе, если вы заинтересованы. – Claies