2015-11-25 4 views
0

Недавно я начал изучать Angular. Так много я не знаю. Я пытаюсь получить json-данные из файла php для использования в угловом контроллере. Но данные из php-файла не превышают.GET JSONP данные из php-файла в угловом контроллере

controllers.js:

app.controller('MainCtrl',['$scope', '$resource', '$http', 
function($scope, $resource,$http) { 
    $http.get('/xbmc.php').success(function(data) { 
     $scope.data = data; 
    }); 
}]); 

xbmc.php:

<? 
include('sys/inc/config.inc.php'); 
include(SMARTY_DIR.'Smarty.class.php'); 
include(BASE_DIR .'sys/inc/classes.inc.php'); 
include(BASE_DIR .'sys/inc/init.inc.php'); 
include(BASE_DIR .'xbmcApi.php'); 
$jsonData = new xbmcApi($_GET['action']); 
/** 
if (MEGAKINO_LOGED) 
{ 
**/ 
    $json = $jsonData->getResult(); 
/** 
} 
else 
    $json = array('authStatus' => '0'); 
**/  
echo json_encode($json); 
?> 

index.html:

<body ng-controller="MainCtrl"> 
    <div class="wrapper"> 
     <h2>{{title}}</h2> 
     <div class="row"> 
      <div class="col-md-1 col-sm-2 col-xs-4" style="margin-top: 0.5%;" ng-repeat="item in data.items"> 
       <div class="image" style="margin-bottom: 1%"> 
        <a data-ng-href="#!/seasons/serie/{{item.id}}"> 
         <img data-ng-src="/files/series/thumb-{{item.id}}.jpg" alt=""/> 
        </a> 
       </div> 
       <div class="info"> 
        <a data-ng-href="#!/seasons/serie/{{item.id}}"> 
         <b>{{item}}</b> 
         <u>Рейтинг: {{item.rate}}</u> 
        </a> 
       </div> 
      </div> 
     </div> 
    </div> 
</body> 
+0

Действительно ли '$ json' хранит правильный результат? – Vineet

+0

Добавьте 'console.log (data)' внутри функции обещания и сообщите нам, что вы видите. –

+0

Вы проверили свой php с помощью адресной строки браузера, не работает ли он? И есть ли у вас ошибка при использовании углового? – RockOnGom

ответ

1

Ваш PHP-код говорит, что ваш JSON будет строить если передаются $_GET['action'] пар:

$jsonData = new xbmcApi($_GET['action']); 

Тем не менее, вы не пропуская никаких данных в виде строки запроса из углового контроллера. Попробуйте что-то вроде:

app.controller('MainCtrl',['$scope', '$resource', '$http', 
function($scope, $resource,$http) { 
    $http({ 
     url: '/xbmc.php', 
     method: "GET", 
     params: {action: 'some_action'} 
    }).success(function(data) { 
     $scope.data = data; 
    }); 
}]); 
+1

ты спас меня !!!!! большое спасибо !!! – b152

+0

Рад помочь вам! –

0

AS @CharlieH сказал, проверить на наличие ошибок на консоли:

app.controller('MainCtrl',['$scope', '$resource', '$http', 
function($scope, $resource,$http) { 
    $http.get('/xbmc.php') 
     .then(function(response) { 
      $scope.data = response.data; 
    }) 
     .catch (function(error) { 
      //check for errors here 
      console.log(error); 
      throw error;     
    }); 
}]); 

Также метод .success устарел. Мы все должны перейти на использование .then и .catch. Для получения дополнительной информации об этом см .: Deprecation of the .success and .error methods in the $http service

Смежные вопросы