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"}]
該變量「a」在控制器是沒有得到與產生的陣列更新來自json文件。但是,如果我使用$ scope變量直接綁定數組,那麼它就可以工作。
LoadJsonFactory.fetch().then(function(items) {
$scope.data = items;
});
上述代碼有效。
有沒有一種方法可以將它分配給控制器變量,然後將其綁定到範圍變量?
任何幫助非常感謝! –
試試這個'a = items.data' –
嘗試了items.data,但仍然無法獲得數組。 –