JSON/XML с REST
{
litm: "T00000245",
lotn: "00004"
}
<jdeSerials>
<litm>T00000245</litm>
<lotn>00004</lotn>
</jdeSerials>
AngularJS контроллер
//Searching a product with serial number/LOTN
$scope.searchProduct = function() {
var lotn = $scope.jdeSerials.lotn;
console.log("searchProduct---->" + lotn);//log-->searchProduct---->00004
$scope.JdeSerials = lotnService.get({id: lotn}, function() {
console.log($scope.jdeSerials);//log-->[object Object]
console.log($scope.jdeSerials.litm);//log-->undefined!!!!!
});
//var litm = $scope.jdeSerials.litm;
//$scope.jdeproduct = productService.get({id: litm});
};
AngularJS службы
angular.module('lotnService', ['ngResource'])
.factory('lotnService', ['$resource',
function ($resource) {
console.log('------lotmService-----');
return $resource(
'http://localhost:8080/RMAServer/webresources/com.pako.entity.jdeserials/:id',
{},
{
update: { method: 'PUT', params: {id: '@lotn'} }
});
}]);
Вопрос
Как я могу получить значение $ scope.jdeSerials.litm? Есть ли лучшая идея для решения этой проблемы, например создание службы, которая обрабатывает эти два GET? Я думаю, что причина в том, что метод GET является асинхронным, но каково наилучшее решение для таких ситуаций?
EDIT/обновление
Я изменил вызов службы, как это:
$scope.JdeSerials = lotnService.get({id:lotn})
.$promise.then(function(jdeSerials) {
$scope.jdeSerials = jdeSerials;
console.log("1--------------->LITM:"+$scope.jdeSerials.litm);
});
Я получил LITM, но я получил ErrorMessage, а также:
TypeError: Cannot read property 'then' of undefined
Я думаю, что это не поможет, потому что $ resource предлагает get, query, post и т. Д.автоматически, но я попробую. https://docs.angularjs.org/api/ngResource/service/$resource – Sami
Да, вы правы. Единственное, что я не понимаю, - это то, почему ваше имя приложения совпадает с вашим сервисом. –
Это просто имя модуля. Имя приложения - testClientApp. Я получил семь сервисных модулей, представленных в app.js. Спасибо за комментарий, любую идею, как заставить это работать? Все еще борется с той же проблемой, и это сводит меня с ума. – Sami