0

在这里,我的模块如下:

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

然后我有这样的服务:

eventsApp.factory('listData', function($resource){
   return $resource('/data/event/:eventid', {}, {
       'update': {method:'PUT'},
       'query': {method: 'GET', isArray: true}
   });
});

在我的控制器中,我有:

eventsApp.controller('EventListController', 
    function EventListController($scope, listData) {
        $scope.events = listData.query();
    }
);

然后我使用ngRepeat来查看从$resource返回的数据,例如:

<li ng-repeat="event in events"> do sth..</li>

在我的目录“/data/event”中,我有几个名为 1、2、3、4 的 JSON 文件。试一试:

{
    "id": 1,
    "name": "Angular Boot Camp",
    "date": "1/1/2013",
    "time": "13:40 pm",
    "creator":"bob",
    "location":{
        "address": "Google HQ",
        "city": "Mountain View",
        "province": "CA"
    },
    "imageUrl": "/img/angularjs-logo.jpg"
}

我想要做的是使用$resource.query()将所有四个文件返回到一个对象数组中,但似乎我必须设置我的网络服务器或其他东西?

4

2 回答 2

0

经过一天的努力,我终于将另一台服务器设置为RESTful。实际上,根本问题在于:我的文件名。由于我使用的是 Windows 8,它有点像没有后缀文件类型,所以在我的目录中最初有名为"1" 和 "2"的文件,当然这是行不通的,我没有意识到. 幸运的是,当我考虑到另一个演示并遇到同样的问题时,我将文件名更改为"1.json", "2.json"。神奇的是,它起作用了。谢谢。本期结束。

于 2013-07-04T12:29:26.113 回答
0

是的,您需要设置服务器并将 eventid 设置为@id。

http://docs.angularjs.org/api/ngResource .$resource

eventsApp.factory('listData', function($resource){
   return $resource('/data/event/:eventid', {eventid: '@id'}, {});
});
于 2013-07-04T10:22:29.363 回答