Angularjs JSON чтения данных - PullRequest
       2

Angularjs JSON чтения данных

0 голосов
/ 26 сентября 2018

Я пытаюсь прочитать данные json из URL-адреса, но он не работает.

Так выглядит URL-адрес json (откройте его в Firefox, если Chrome не работает).

А это мой код JavaScript:

$scope.displayA = function() {
  $http.get('url').then(function(response){
    $scope.ninjass = response.data;
  });
};

Я пытаюсь отобразить его в формате ng-repeat, но ничего не отображается.

ng-повторить код

    <table>
      <!--  <th ng-repeat="ninja in ninjass">
             {{ ninja.id }}
        </th> -->
        <tbody>
            <tr ng-repeat="ninja in ninjass">
                <td>{{ ninja.name }}</td>
                <td>{{ ninja.description }}</td>
              <!--  <td>
                  {{ ninja.NAME }}
                </td>
                <td>{{ ninja.NAME }}</td> -->
            </tr>
        </tbody>
    </table>

Журнал ошибок:

Uncaught SyntaxError: неожиданный токен]

И

UncaughtОшибка: [$ инжектор: modulerr]

Ответы [ 4 ]

0 голосов
/ 26 сентября 2018

Я обнаружил несколько ошибок в вашем коде.Прежде всего, это должен быть URL без '';и вы должны объявить это выше.Во-вторых, $ scope.ninjass должен быть выше кода.Быть посчитанным как глобальная переменная.В-третьих, вам нужен доступ к свойству "SrchResults" внутри вызова get.

$scope.ninjass = response.data.SrchResults; 

В общем, оно должно быть примерно таким:

var url = //put your url here;
$scope.ninjass = [];
$scope.displayA = function() {
  $http.get(url).then(function(response){
    $scope.ninjass = response.data.SrchResults;
  });

};

0 голосов
/ 26 сентября 2018

попробуйте это

$scope.displayA = function() {  
   $http.get('url').then(function(response){    
         console.log("success :- "+JSON.stringify(response.data));
         $scope.ninjass = response.data.SrchResults;
         console.log("total length :- "+$scope.ninjass.length); 
  }); 
};
0 голосов
/ 26 сентября 2018

Вы должны определить $scope.ninjass=[]; глобально.если только ошибка выброса ng-repeat из-за объекта модели не определена.Пожалуйста, проверьте приведенный ниже фрагмент;

angular.module("test",[]).controller("testc",function($scope,$http) {   
$scope.ninjass=[];       

 $http.get('https://developers.onemap.sg/publicapi/themeapi/retrieveTheme?queryName=historicsites&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjMsInVzZXJfaWQiOjMsImVtYWlsIjoicHVibGljQXBpUm9sZUBzbGEuZ292LnNnIiwiZm9yZXZlciI6ZmFsc2UsImlzcyI6Imh0dHA6XC9cL29tMi5kZmUub25lbWFwLnNnXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNTM3ODYwNTIxLCJleHAiOjE1MzgyOTI1MjEsIm5iZiI6MTUzNzg2MDUyMSwianRpIjoiNmVhNzA3NTk5OWM1NGZlZjQ0ZDFkMzEyZTkyMmEzMmUifQ.q_MiRnCT_2owbMFfCcpVVSECOTellwvojAY5Wwz0xJY').then(function(response){
     $scope.ninjass = response.data.SrchResults;
  });
 });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="test" ng-controller="testc">
    <table>     
    <tbody>
        <tr ng-repeat="ninja in ninjass">
            <td><b>{{ ninja.NAME}}<b/></td>
            <td>{{ ninja.DESCRIPTION}}</td>  
        </tr>
    </tbody>
</table>
</div>
0 голосов
/ 26 сентября 2018

Попробуйте с этим,

$http({
  method: 'GET',
  url: '/someUrl'
}).then(function successCallback(response) {
  console.log(response.data);
}, function errorCallback(response) {
  console.log(response);
});

Вы должны заменить '/ someUrl' на ваш URL url.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...