簡體   English   中英

Angular http.get中的通配符?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM