Я относительно новичок в AngularJS, и я работал над выполнением следующих действий в рамках Сервиса с фабрикой.
У меня есть следующий вызов в Сервисе:
factory.getUsers = function () {
var USER_ENDPOINT = '/api/user'
var deferred = $q.defer();
$http.get(USER_ENDPOINT).then(
function (success) {
var users = success.data.map(function (c) { return { UsertId: c.UserId, UserName: c.UserName }; });
deferred.resolve(users);
}
, function (failure) {
deferred.reject(failure);
}
);
return deferred.promise;
};
factory.getLocations = function (userId) {
var LOCATION_ENDPOINT = '/api/user/' + userId + '/location'
var deferred = $q.defer();
$http.get(LOCATION_ENDPOINT).then(
function (success) {
var locations = success.data.map(function (c) { return { LocationId: c.LocationId, LocationName: c.LocationName }; });
deferred.resolve(locations);
}
, function (failure) {
deferred.reject(failure);
}
);
return deferred.promise;
};
Вот моя проблема. Вызов userId и locationId в нижеприведенной конечной точке возвращает мне userId, но когда он достигает locationId, возвращается «undefined». Когда я вызываю точный путь в браузере, он возвращает правильные данные, основанные на этом пути, но не в рамках описанного ниже подхода.
factory.getService = function (userId, locationId) {
var SERVICE_ENDPOINT = '/api/user/' + userId + '/location/' + locationId;
var deferred = $q.defer();
$http.get(SERVICE_ENDPOINT).then(
function (success) {
var services = success.data.map(function (c) { return { ServiceId: c.ServiceId, ServiceName: c.ServiceName }; });
deferred.resolve(services);
}
, function (failure) {
deferred.reject(failure);
}
);
return deferred.promise;
};
Если я заменил userId и сначала разместил locationId, который возвращает locationId, но этот время clientId не определено.
Буду признателен за помощь в этом. Заранее спасибо!