我正在創建一個簡單的web應用程序來顯示公式1驅動程序。驅動程序列表通過公共API檢索。我有一個鏈接到他們的維基百科頁面,所以我試圖獲取主要圖像用作配置文件圖片。AngularJS ng-src異步函數
我從url中提取維基百科頁面標題,然後執行進一步的JSON調用以獲取圖像的url。
獲取驅動程序列表並綁定到頁面可以正常工作,但我的函數調用似乎永遠不會填充ng-src屬性,即使觸發了JSON調用。控制檯日誌記錄顯示img url已返回,但它永遠不會填充img。
以下是我controller.js
angular.module('formulaOneApp.controllers', []).controller('DriverViewController', function($scope, $stateParams, Driver) {
$scope.data = Driver.driver.get({ id: $stateParams.id }, function(){
$scope.driver = $scope.data.Drivers[0];
});
$scope.getProfilePic = function(driverName) {
if (driverName == undefined) return;
console.log(driverName)
$.getJSON("http://en.wikipedia.org/w/api.php?callback=?",
{
action: "query",
titles: driverName,
prop: "pageimages",
format: "json",
pithumbsize: "200"
}, function(data) {
$.each(data.query.pages, function(i,item){
console.log(item.thumbnail.source)
return item.thumbnail.source;
});
});
}
});
這是我的html: -
<h3>Details for {{driver.givenName}} {{driver.familyName}}</h3>
<img ng-src="{{ getProfilePic(driver.wikiName) }}" />
我懷疑這可能不是正確的方法,所以任何人都可以點我在正確的方向?
這不會解決你的問題,但建議使用'$ http'或'使得當$ resource'服務Ajax調用。 – 2014-12-01 17:23:10
您不會將數據返回到任何內容,並且$ .each不會從每個回調中返回數據 – 2014-12-01 17:24:05