JSON作为Angular工厂中的变量

时间:2016-04-14 13:21:27

标签: javascript java angularjs json

我是Angular的新手,我正在尝试设置DATA(script.js文件)varible以从JSON文件(books.json)获取数据。我回顾了一些帖子,但我无法理解它如何应用于工厂类型的结构。

谢谢! Plunker-Code

1 个答案:

答案 0 :(得分:0)

$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;
    });
  }
]);