首页 > 网站 > WEB开发 > 正文

AngularJS笔记---注册服务

2024-04-27 14:08:06
字体:
来源:转载
供稿:网友

AngularJS笔记---注册服务

在前面的笔记中,了解到AngularJS的后台控制可以在Controller里面实现. 可是如果所有的逻辑代码都写到Controller会显得该Controller过于臃肿. 不方便维护, AngularJS提供了一个可以依赖注入的方法。我们可以将逻辑处理封装到Service中,需要调用只需要引入对应的Service即可.

Angular 提供了3种方法来创建并注册我们自己的 service.

1.Factory

2.Service

3.PRovider

一. Factory:

1. 下面构建了一个MyFactory, 用于设置个人信息,并展示个人信息。

Note: 1. 必须在里面调用return 否则会报错

2. 所有的可访问的方法都放到了Service里面

app.factory('MyFactory',function(){       var service = {};       var _name = '';       var _age = '';       service.SetInfo = function(name,age){             _name = name;             _age = age;       }       service.ShowInfo = function(){             return _name+':'+_age;       }       return service;  });

2. 可以将通过function(MyFactory)中将服务注册到Controller中. 控制台就会打印出Frank:23

  var app = angular.module('myapp')  app.controller('InjectCtrl',function ($scope,MyFactory) {       MyFactory.SetInfo('Frank',23);       console.log(MyFactory.ShowInfo());  }); 

二. Service

1. Service与Factory用法差不多,区别在于不需要Return一个对象.

 var app = angular.module('myapp')  app.controller('InjectCtrl',function ($scope,MyService) {       MyService.SetInfo('Frank',23);       console.log(MyService.ShowInfo())  });app.service('MyService', function(){       var _name = '';       var _age = '';       this.SetInfo = function(name,age){              _name = name;              _age = age;       }       this.ShowInfo = function(){              return _name+':'+_age;       }  });

三. Provider:

1. Provider: 通过#Get方法实现数据的返回.

  app.provider('MyProvider',function(){         var service = {};       var _name = '';       var _age = '';       service.SetInfo = function(name,age){             _name = name;             _age = age;       }       service.ShowInfo = function(){             return _name+':'+_age;       }       this.$get = function(){             return service;       }   });


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表