• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

AngularJS基于factory创建自定义服务的方法详解

angularjs 搞代码 4年前 (2021-12-31) 45次浏览 已收录 0个评论

这篇文章主要介绍了AngularJS基于factory创建自定义服务的方法,结合实例形式分析了AngularJS使用factory创建自定义服务的具体步骤、操作技巧与相关注意事项,需要的朋友可以参考下

本文实例讲述了AngularJS基于factory创建自定义服务的方法。分享给大家供大家参考,具体如下:

为什么要创建自定义服务?

很简单,不想让控制器显得过于“臃肿”,而且服务可复用。针对性强,每个服务对应不同的功能。

这里介绍如何使用factory创建自定义服务,并且使用他。

例子1:

 <!--HTML--><div> <h1></h1></div>
 /*js*/ var app = angular.module("routingDemoApp",[]); app.factory("showName",function(){ var NameFactory = {}; NameFactory.name = "张三"; return NameFactory; }); app.controller("showTheName",function($scope,showName){ $scope.name = showName.name<i style="color:transparent">来源gaodai$ma#com搞$代*码网</i>; }); 

使用factroy来创建一个服务和创建一个控制器非常像,只是创建服务需要返回这个服务的对象。这里的对象就是NameFactory 。一般的写法是在函数的一开始就创建一个变量对象,而后在进行对象里面属性以及方法的设置,最后返回这个对象即可。

在控制器使用自定义的服务与使用AngularJS自带的服务几乎一样,只是名字的前面没有美元($)符号。在注入了自定义的服务后,控制器中就可以随意的使用该控制器返回的对象的属性和方法了。

自定义服务还有个更强大的玩法,就是在创建自定义服务的同时将已经创建好的服务注入。以上一篇博文的基础为例,使用自定义服务来实现读取AJAX文件。(JSON文件可参考前面一篇《AngularJS读取JSON及XML文件的方法》,这里不给出了)

 <!--html--><div class="panel panel-default"> <div class="panel-body"> <table class="table table-striped table-hover"> <thead> <tr> <td>名</td><td>种类</td><td>价格</td><td>保质期</td></tr></thead><tbody> <tr> <td colspan="4" class="text-center">没有数据</td></tr><tr> <td></td><td></td><td></td><td></td></tr></tbody></table><p><button>加载JSON数据</button></p></div></div>
 /*JS*/ app.factory("loadJSON",function($http,$q){ var loadJson ={}; loadJson.loadjson = function(){ var d = $q.defer(); $http({ url:"json.json", method:"GET" }) .success(function(response){ d.resolve(response); }) .error(function(){ d.reject(alert("出错")); }); return d.promise; }; return loadJson; }); app.controller("AjaxJson",function($scope,loadJSON){ $scope.LoadJson = function () { loadJSON.loadjson().then(function(data){ $scope.products = data; },function(){ alert("出错"); }) } }); 

步骤如下:

1)将$http,$q 注入到匿名函数中。
2)创建一个变量对象,命名为loadJson。
3)在该对象中创建一个方法,命名为loadjson()。
4)创建一个变量d,赋予它$q.difer()方法。
5)使用http({})创建一个promise对象,并返回该promise对象。
6)返回ladJson对象。服务创建完毕。
7)在控制器中注入该服务,使用then()方法对自定义服务返回的承诺进行操作。

更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》

希望本文所述对大家AngularJS程序设计有所帮助。

以上就是AngularJS基于factory创建自定义服务的方法详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:AngularJS基于factory创建自定义服务的方法详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址