我在我的控制器中有一個數據數組,包括一個聲音文件源的字符串。我需要做的是讀取數組並以ng-repeat顯示。我有一個按鈕,必須播放陣列中每個元素的聲音。無法將音頻源傳遞到ngAudio內ng-repeat
源是一個字符串,但是當我把它傳遞給ngAudio,它將搜索像>http://localhost:8100/%7B%7Banimal.audio%7D%7D源,所以它永遠不會找到該文件,以發揮它
我想有另一個控制器,將在收到來源的價值,一旦它被ng-repeat調用,但這對我來說並不合適。有沒有辦法實現這一點?
這是我的代碼:
//controller
.controller('GranjaController', function($scope) {
$scope.animals = [
{ name: 'Vaca', id: 1, img: "img/granja/vaca.png", kname: "Wakax", audio: "sounds/vaca.mp3" },
{ name: 'Caballo', id: 2, img: "img/granja/caballo.png", kname: "Kej" , audio: "sounds/caballo.mp3" }
];
})
//index.html
<ion-item ng-repeat="animal in animals" href="#/app/playlists/{{playlist.id}}">
<img ng-src="{{animal.img}}" />
{{animal.name}}
<button ng-audio= "{{animal.audio}}" volume="0.5" start="0.2">Click me</button>
<button ng-audio= "sounds/granja/vaca.mp3" volume="0.5" start="0.2">Click me</button>
</ion-item>
第一個按鈕永遠達不到一個文件,因爲ngAudio收到一個奇怪的字符串,第二個按鈕完美的作品,雖然是相同的字符串我有在數組中。 正如ngAudio的文檔所說:「ngAudio:接受一個字符串並用ngAudio.load()創建一個新對象」 然後爲什麼它不起作用?
UPDATE
我使它通過使用控制器內的負載()方法工作,因爲@jami0821我指出。這是我的最終代碼:
//controller
.controller('GranjaController', function($scope, ngAudio) {
$scope.animals = [
{ name: 'Vaca', id: 1, img: "img/granja/vaca.png", kname: "Wakax", audio: ngAudio.load("sounds/granja/vaca.mp3") },
{ name: 'Caballo', id: 2, img: "img/granja/caballo.png", kname: "Kej" , audio: ngAudio.load("sounds/granja/caballo.mp3") }
];
})
//index.html
<ion-item ng-repeat="animal in animals" href="#/app/playlists/{{playlist.id}}">
<img ng-src="{{animal.img}}" />
{{animal.name}}
<button ng-click="animal.audio.play()">Click me</button>
</ion-item>
可以嘗試'NG-ATTRS-NG-音頻= 「{{animal.audio}}」' –
不起作用。它甚至沒有在控制檯 – montjoile
中顯示任何控制檯錯誤的文件請求? –