我搜索了很多,在所有情况下,他们通常都希望直接在HTML上显示它,但我的目的是仅使用Angular JS中的数据。
angular.module('myApp').factory('UserService', ['$http', '$q', function($http, $q){
var url ;
$http.get('/HomeAccessService-1/static/js/data.json').then(function(response) {
url = response.data;
//alert(JSON.stringify(url.data));
});
//var REST_SERVICE_URI = 'http://localhost:8080/HomeAccessService-1/user/';
var REST_SERVICE_URI = JSON.stringify(url.data);
var factory = {
fetchAllUsers: fetchAllUsers,
createUser: createUser,
updateUser:updateUser,
deleteUser:deleteUser
};
return factory;
function fetchAllUsers() {
var deferred = $q.defer();
$http.get(REST_SERVICE_URI)
.then(
function (response) {
deferred.resolve(response.data);
},
function(errResponse){
console.error('Error while fetching Users');
deferred.reject(errResponse);
}
);
return deferred.promise;
}
我想在其他方法中使用此url数据,数据实际上是我放入data.json
文件的REST API URL
{"data":"http://someotherip:8080/Service/user/"}
警报时显示object Object
,
我不想在HTML中显示它,而是在角度js方法中使用数据。
答案 0 :(得分:1)
警报在您的回复到达之前显示。将警报置于请求承诺内。你会得到答复。
并使用json.stringify(response.data)
制作一个json字符串
答案 1 :(得分:0)
你应该在诺言中调用警报,否则当你发出警告时它将是未定义的,
$http.get('/Service-1/static/js/data.json').then(function(response) {
url = response.data;
alert(JSON.stringify(url.data));
});*/
为了显示正确的数据,您应该使用 JSON.stringify()
alert(JSON.stringify(url.data));
答案 2 :(得分:0)
你可以做两件事之一
1.添加REST_SERVICE_URI = ..
而不是该警报语句OR
2.在fetchAllUsers
函数中添加这些geturl调用,然后在获得resopnse.data
//// Add url part inside get response
var url;
var REST_SERVICE_URI;
$http.get('/HomeAccessService-1/static/js/data.json').then(function(response) {
url = response.data;
REST_SERVICE_URI = JSON.stringify(url.data);
});
...
//// OR do it in sync
function fetchAllUsers() {
var deferred = $q.defer();
$http.get('/HomeAccessService-1/static/js/data.json').then(function(response) {
url = response.data;
REST_SERVICE_URI = JSON.stringify(url.data);
$http.get(REST_SERVICE_URI)
.then(
function (response) {
deferred.resolve(response.data);
},
function(errResponse){
console.error('Error while fetching Users');
deferred.reject(errResponse);
}
);
});
return deferred.promise;
}
答案 3 :(得分:0)
$scope.jsondata=json.stringify(response.data)
console.log(jsondata.url);
将所有json放在一个javascript变量中然后使用循环或变量(如jsondata.url)进行搜索,并在将来的api调用中使用它。