[英]Wildcard in Angular http.get?
我在一個目錄中有多個JSON文件,並且我將從這些JSON文件構建視圖內容。 JSON文件的結構相同。
加載用於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();
}
此類網址中不允許使用通配符AFAIK。 您應該構建一個服務器端端點,該端點應讀取服務器上目錄中的所有文件,並進行連接並將響應返回給您。
對於eX:您可以公開一個GET URL:/ api / contents / releases並且它的服務器端處理程序可以讀取包含所有版本JSON的目錄並返回給您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.