0

Angularjs を使用して parse.com バックエンドから Rest データを取得しようとしています。少なくとも、以下のコードで確認できるコンソール ログから何かが返されることを期待していますが、何も返されず、コンソールにエラーも表示されません。

これが私が試しているコードです:完全なJavascriptコード:

var todoApp = angular.module('todoApp', ['ngResource']);


todoApp.factory('todoFactory', function($resource) {
    return $resource('https://api.parse.com/1/classes/Professional', {}, {
        method: 'GET',
        headers: { 'X-Parse-Application-Id':'xxx', 'X-Parse-REST-API-Key':'yyy'}
    });
});

function TodoController($scope, $location, todoFactory) {
    function loadTodos() {
        $scope.items = todoFactory.query();
        console.log(todoFactory.query());  //i expect this to log something at least
    }

}

完全な HTML コード:

<!DOCTYPE html>
<html ng-app="todoApp">
<head>
    <title></title>
</head>
<body>

<div ng-controller="TodoController">
    <ul>
        <li ng-repeat="item in items"> {{item.firstName}} </li>
    </ul>
</div>

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular-resource.min.js"></script>

このデッドコードに命を吹き込む方法の手がかりはありますか?

4

1 に答える 1

1

問題は、関数を呼び出していないことです。

次の 2 つのオプションがあります。

コントローラーで:

function TodoController($scope, $location, todoFactory) {
    function loadTodos() {
        $scope.items = todoFactory.query();
        console.log(todoFactory.query()); 
    }
    // You declare the function, now you can use this
    loadTodos();
}

ただし、この方法では、関数は$scope. そのためには、次のように宣言する必要があります。

function TodoController($scope, $location, todoFactory) {
    $scope.loadTodos = function() {
        $scope.items = todoFactory.query();
        console.log(todoFactory.query()); 
    }
}

$scope で関数を宣言すると、次のようにビューで使用できるようになります。

<button type="button" ng-click="loadTodos()">Get Items</button>
于 2013-11-14T21:40:47.940 に答える