我在一個目錄中有多個JSON文件,我將從這些JSON文件構建視圖內容。 JSON文件結構相同。Angular http.get中的通配符?
加載多個用於ng-repeat
的JSON文件的正確語法是什麼?我試過這個,但它拋出了一個權限被拒絕的錯誤(視圖通過路徑加載,如果它很重要,仍然學習Angular ...)。
我使用這些:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular-route.min.js"></script>
摘錄從視圖:
<div ng-controller="releases">
<article ng-repeat="album in albums">
{{ album.artist }}
</article>
</div>
控制器:
myApp.controller('releases', function($scope, $http) {
$scope.albums = [];
$http.get('contents/releases/*.json')
.then(function(releases) {
$scope.albums = releases.data;
console.log($scope.albums);
});
});
的JSON文件是這樣的:
{
"artist" : "Artist name",
"album" : "Album title",
"releaseDate" : "2015-09-16"
}
的錯誤信息是:
You don't have permission to access /mypage/angular/contents/releases/*.json on this server.
如果我使用的確切的文件名,例如$http.get('contents/releases/album.json')
,我可以正確地訪問數據。但自然只有一個JSON,而不是我擁有的11個文件。
在之前的一個網站中,我使用了PHP,我使用了相同的方法,並且在那裏我可以訪問相同的文件而沒有任何問題。對於這兩者,我使用WAMP服務器(Apache 2)作爲平臺。
難道它仍然與Apache配置有關嗎?我不認爲這是,究其原因是因爲它在PHP的工作是這樣的:
// Get release data
$releasesDataLocation = 'contents/releases/*.json';
$releasesDataFiles = glob($releasesDataLocation);
rsort($releasesDataFiles); // Rsort = newest release first, comment out to show oldest first
// Show the releases
foreach($releasesDataFiles as $releaseData) {
$release = new Release($releaseData);
$release->display();
}
我想是簡單地將JSON文件連接成一個更大的源文件比較好,這樣就只存在一個JSON文件。類似Ashutosh Upadhyay在答案中的建議?它可能會保存一些請求,因爲文件本身仍然很小(24 KB)。 –