извлечения данных из JSon файла в angularjs службы
angular.module('testJsonLoadApp')
.factory('LoadJsonFactory', function($http) {
var jsonLoad = {
fetch: function() {
return $http.get('../../test.json').then(function(data) {
return data;
});
},
};
return jsonLoad;
})
.controller('MainCtrl', function ($scope, LoadJsonFactory) {
var a = [];
LoadJsonFactory.fetch().then(function(items) {
a = items;
});
$scope.data = a;
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div>
<ul>
<li ng-repeat="datum in data">{{datum.id}}</li>
</ul>
</div>
Вот содержимое файла Json
[{"id": "0","Name": "Items 0", "Description": "Description 0"},
{"id": "1","Name": "Items 1", "Description": "Description 1"},
{"id": "2","Name": "Items 2", "Description": "Description 2"}]
переменная «а» в контроллере не получает обновленный с массивом генерируемой из json-файла. Однако, если я использую переменную $ scope для привязки массива напрямую, то она работает.
LoadJsonFactory.fetch().then(function(items) {
$scope.data = items;
});
Приведенный выше код работает.
Есть ли способ, которым я могу назначить его переменной контроллера, а затем привязать ее к переменной области видимости?
Любая помощь очень ценится !!! –
попробуйте это 'a = items.data' –
Пробовал items.data тоже, но все равно не смог получить массив там. –