我正在尝试使用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>
关于如何赋予这个死代码生命的任何线索?
答案 0 :(得分: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>