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

问题是你没有调用你的函数。

你有两个选择:

在您的控制器中:

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 回答