读取Angular JS脚本中的JSON数据,并仅在JS

时间:2017-03-12 06:44:03

标签: javascript angularjs json

我搜索了很多,在所有情况下,他们通常都希望直接在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方法中使用数据。

4 个答案:

答案 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调用中使用它。