大神帮忙看看,小弟跪谢。
factory:
angular.module('starter.service',[])
.factory('ArticleFactory',function($rootScope,$resource,ENV){ var apiUrl=ENV.api;//请求url var topics={};//存储得到的数据 var resource=$resource(apiUrl, {},{query:{isArray:false}}); return{ getTopTopics:function(){ resource.query( { a: "getPortalList", catid: 20, page: 1 }, function(r){ return r.result; } ); } } });
controller:
.controller('articleCtrl',function($scope,ENV,ArticleFactory){
console.log(ENV.api); console.log(ArticleFactory.getTopTopics()); })
调用返回:
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
为什么不讲$resource直接返回呢?
方法
ArticleFactory.getTopTopics()
是异步的1.因为你的方法没有return任何东西。
2.如果你非要在getTopTopics里面进行异步,那么需要使用promise去进行return,不然还是undefined
建议使用下面的方法,return之前先进行查询。
这样就能获取到你想要的值了:console.log(ArticleFactory.getTopTopics());