Я создаю мобильное приложение, использующее систему ionic, которая построена на AngularJS.
Я пытаюсь загрузить изображение в свое приложение из файла JSON, но я не могу загрузить его правильно.
Может ли кто-нибудь помочь мне?
Вот мой HTML:
<ion-view view-title="Gallery" align-title="center" ng-controller="photoCtrl" ng-init="getImages()">
<ion-content>
<div class="col col-25" ng-repeat="image in images">
<img ng-src="{{images}}" width="100%" />
</div>
</ion-content>
</ion-view>
Вот мой javascript:
.controller("photoCtrl", function($scope, $http) {
$scope.data = [];
$scope.getImages = function() {
$http.get('https://api.myjson.com/bins/30vuu')
.success(function(data) {
$scope.data = data;
})
.error(function() {
alert("Not working");
});
};
});
Здесь есть несколько вопросов. Во-первых, ваш вызов API возвращает объект с единственным свойством, называемым образами (а не массивом). Во-вторых, вы не {{ data.images }}
доступ к нему в своем HTML, потому что это будет {{ data.images }}
так как ваш член $scope
называется data
.
Итак, первое, что вам нужно сделать, это вернуть API массив. Если вы это сделаете, используйте этот HTML-код:
<ion-view view-title="Gallery" align-title="center" ng-controller="photoCtrl" ng-init="getImages()">
<ion-content>
<div class="col col-25" ng-repeat="image in data.images">
<img ng-src="{{image}}" width="100%" />
</div>
</ion-content>
</ion-view>
И этот JavaScript:
.controller("photoCtrl", function($scope, $http) {
$scope.getImages = function() {
$http.get('https://api.myjson.com/bins/30vuu')
.success(function(data) {
$scope.data = data;
})
.error(function() {
alert("Not working");
});
};
});
Если вы хотите, чтобы ваш API возвращал одно изображение, он так же прост, как и для HTML:
<ion-view view-title="Gallery" align-title="center" ng-controller="photoCtrl" ng-init="getImages()">
<ion-content>
<div class="col col-25">
<img ng-src="{{ data.images }}" width="100%" />
<!-- data.images because that the name returned by the API call -->
</div>
</ion-content>
</ion-view>
JavaScript не нуждается в изменении от того, что у меня выше;
Пожалуйста измените
<img ng-src="{{image}}" width="100%"/>
вместо
ng-src="{{images}}"