我是Angular的新手,我試圖設置DATA(script.js文件)varible從JSON文件(books.json)獲取數據。我回顧了幾個帖子,但我無法理解它如何應用於工廠類結構。JSON作爲Angular工廠中的變量
謝謝! Plunker-Code
我是Angular的新手,我試圖設置DATA(script.js文件)varible從JSON文件(books.json)獲取數據。我回顧了幾個帖子,但我無法理解它如何應用於工廠類結構。JSON作爲Angular工廠中的變量
謝謝! Plunker-Code
$http.get
返回承諾。退回工廠的承諾,然後使用then
在控制器中解決此問題。
在你的工廠
app.factory("bookService", ["$rootScope","$http",
function($rootScope,$http,$q) {
var getBooks = function(){
return $http.get('books.json'); // returns a promise
}
return {
getBooks: getBooks
};
}]);
而且在你控制器
app.controller("listController", ["$scope", "$location", "$routeParams", "bookService",
function($scope, $location, $routeParams, bookService) {
bookService.getBooks().then(function(data){ // resolve promise using then()
// successcallback
$scope.books = data;
});
}
]);
sjokkogutten - 感謝您的時間,不幸的是,我仍然無法獲得Json文件,我按照您的指示做了,但我得到的錯誤是SVC變量無法訪問,到期到[Return {getBooks:getBooks};]。這是我迄今爲止的進展。 https://embed.plnkr.co/vuMzAxtDhJ7ZnYls32rO/ – user3387719
我沒有權限保存你的Plunk,但你需要1)在你的工廠里加入這個return語句'return { getBooks:getBooks };'2)include這在你的控制器中:'$ scope.books = data;'3)在你的html上調用'books' – sjokkogutten
Hi-sorry for delay,這是我的代碼,編輯權限https://embed.plnkr.co/sioHkk/ – user3387719
你可以做兩件事情: 1.在您的路線,添加一個決心調用getBooks功能爲您服務,並在$ http回調中,將您的響應分配給service.data對象。 2.您可以在控制器中調用getBooks函數,並在回調中將書籍分配給控制器對象。無論哪種方式,你的service.getBooks函數應該使用$ http.get('books.json'); – Rob
到目前爲止,我瞭解如何將它應用於模塊上,https://embed.plnkr.co/vuMzAxtDhJ7ZnYls32rO/但不在控制器上 – user3387719
@ user3387719您的鏈接器不工作 – Hoyen