Javascript JSON作为角度工厂中的变量
我是Angular的新手,我正在尝试将数据(script.js文件)设置为变量,以从JSON文件(books.JSON)获取数据。我回顾了几篇文章,但我不明白如何将其应用到工厂结构中 谢谢你!Javascript JSON作为角度工厂中的变量,javascript,java,angularjs,json,Javascript,Java,Angularjs,Json,我是Angular的新手,我正在尝试将数据(script.js文件)设置为变量,以从JSON文件(books.JSON)获取数据。我回顾了几篇文章,但我不明白如何将其应用到工厂结构中 谢谢你! $http.get返回一个承诺。从工厂返回承诺,然后在控制器中使用then解决 在你们工厂 app.factory("bookService", ["$rootScope","$http", function($rootScope,$http,$q) { var getBooks = funct
$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;
});
}
]);
你可以做几件事:1。在路由中,添加一个解析来调用服务中的getBooks函数,并在$http回调中,将响应分配给service.data对象。2.您可以在控制器中调用getBooks函数,并在回调中将这些书分配给控制器对象。无论如何,service.getBooks函数都应该使用$http.get('books.json');到目前为止,我了解了如何在模块上应用它,但在controller@user3387719你的plunker链接不起作用了现在呢?sjokkogutten-感谢您的时间,不幸的是我仍然无法获得Json文件,我按照您的指示做了,我得到一个错误,SVC变量无法访问,原因是[Return{getBooks:getBooks};]。这是我到目前为止的进展。我没有权限保存Plunk,但您需要1)在工厂
return{getBooks:getBooks}中添加此return语句代码>2)在控制器中包含以下内容:$scope.books=data代码>3)在您的htmlHi上调用书籍
-很抱歉延迟,这是我的代码,具有编辑权限不,仍然没有编辑权限。但你就快到了。尝试从工厂中删除return svc
。是否尝试在Plunker中查看该文件?我已经尝试从另一台计算机和编辑是可用的。。。我试图删除“重新返回svc”-但没有任何更改。。。我试图最小化代码并注释所有额外的功能(保存、编辑等),但仍然没有任何结果。XHR日志显示传递的json文件没有错误。。。所以这一定是关于数据提取的问题