2013-07-04 70 views
0

在這裏,我得到了我的模塊,如:如何通過Angular Resources Service讀取多個JSON文件?

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> 

正如我的目錄 「/數據/事件」,我有一個名爲1,2,3,4,幾個JSON文件給1一拍:

{ 
    "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()的對象數組中,但似乎我必須設置我的Web服務器或其他東西?

+0

您是否在使用數據庫?這聽起來像你只是有磁盤上的文件 - 是嗎?如果是這樣,那麼你需要一些響應url的服務器端邏輯,並將所有文件連接成一個響應。 –

回答

0

最後的一天的努力,終於,我得到了另一臺服務器設置爲REST風格。實際上,所隱含的基本問題是:我的文件名。由於我使用Windows 8,它有點像沒有後綴文件類型,所以在我的目錄中最初有文件命名只是「1」&「2」,當然這不會工作,我沒有意識到。幸運的是,當我進入另一個演示並獲得同樣的問題時,我隨時將文件名更改爲「1.json」,「2.json」。神奇的是,它的工作原理。謝謝。關閉這個問題。

0

是的,你需要設置服務器並將eventid設置爲@id。

http://docs.angularjs.org/api/ngResource。$資源

eventsApp.factory('listData', function($resource){ 
    return $resource('/data/event/:eventid', {eventid: '@id'}, {}); 
}); 
+0

問題是如何設置我的服務器。其實我正在使用node.js.對於這個問題,我沒有看到將eventid設置爲'@id'的任何區別,因爲query()不是get(),它需要@id設置。 – GrahamLe

相關問題