Как написать контроллер angularJs для получения данных с Parse.com

См. решение ниже:

Я пытаюсь подключиться к серверу Parse.com Rest и отображать данные из значений объектов.

HTML (я поместил несколько вызовов angular, чтобы убедиться, что они выхватили выходные данные):

<div ng-controller="MyController">
    <p>{{item}}<p>
    <p>{{items}}<p>
    <p>{{item.firstName}}<p>
    <p>{{data}}<p>

</div>

JAVASCRIPT rest:

function MyController($scope, $http) {

    $scope.items = [];
    $scope.getItems = function() {

        $http({method : 'GET',url : 'https://api.parse.com/1/classes/Professional/id', headers: { 'X-Parse-Application-Id':'XXXX', 'X-Parse-REST-API-Key':'YYYY'}})
            .success(function(data, status) {
                $scope.items = data;
            })
            .error(function(data, status) {
                alert("Error");
            });
    };
}

Это не сработает, он ничего не делает, даже сообщение в консоли. Я знаю, что остальные вызовы получили правильные учетные данные, так как я могу получить возвращаемое содержимое объекта, когда я тестирую его с помощью программы тестирования покоя. Может быть, URL-адрес не должен быть абсолютным? Любая подсказка очень приветствуется, я потратил DAYS на это.

РЕШЕНИЕ:

Благодаря помощи людей, отвечающих на эту тему, мне удалось найти решение этой проблемы, поэтому я просто хотел внести свой вклад:

Получить данные объекта Json из бэкэнд Parse.com, передать им параметры аутентификации:

function MyController($scope, $http) {

    $scope.items = [];
    $scope.getItems = function() {

        $http({method : 'GET',url : 'https://api.parse.com/1/classes/Professional', headers: { 'X-Parse-Application-Id':'XXX', 'X-Parse-REST-API-Key':'YYY'}})
            .success(function(data, status) {
                $scope.items = data;
            })
            .error(function(data, status) {
                alert("Error");
            });
    };

Обратите внимание, что '' необходимые значения объекта заголовка arround. Эти "не нужны" рядом с ключами метода и URL.

Шаблон, который отображает все "firstName" каждого объекта:

<div ng-controller="MyController" ng-init="getItems()">
     <ul>
        <li ng-repeat="item in items.results"> {{item.firstName}} </li>
    </ul>
</div>

Извещение: "item в items.results". "результаты" необходимы, потому что возвращаемое значение является объектом JSON, который содержит поле результатов с массивом JSON, в котором перечислены объекты. Это может спасти вам головную боль. Также обратите внимание на "ng-init": если вы не поместите это или какую-либо другую форму вызова в getItem(), ничего не произойдет, и вам не будет возвращена никакая ошибка.

Это была моя первая попытка Angularjs, и я уже влюблен ^^.

Ответы

Ответ 1

На основании вашего запроса контроллер должен быть:

HTML

<div ng-controller="MyController">
    <button type="button" ng-click="getItems()">Get Items</button>
    <ul>
       <li ng-repeat="item in items"> item.firstName </li>
    </ul>
</div>

JS

  function MyController($scope, $http) {
        $scope.items = []

        $scope.getItems = function() {
         $http({method : 'GET',url : 'https://api.parse.com/1/classes/Users', headers: { 'X-Parse-Application-Id':'XXXXXXXXXXXXX', 'X-Parse-REST-API-Key':'YYYYYYYYYYYYY'}})
            .success(function(data, status) {
                $scope.items = data;
             })
            .error(function(data, status) {
                alert("Error");
            })
        }
    }