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;
       }
   });
时间: 2024-07-28 18:28:52

AngularJS笔记---注册服务的相关文章

AngularJS开发指南15:AngularJS的创建服务,将服务注入到控制器,管理服务依赖详解

创建服务 虽然AngularJS提供了很多有用的服务,但是如果你要创建一个很棒的应用,你可能还是要写自己的服务.你可以通过在模块中注册一个服务工厂函数,或者通过Module#factory api或者直接通过模块配置函数中的$provide api来实现. 所有的服务都符合依赖注入的原则.它们用一个唯一的名字将自己注册进AngularJS的依赖注入系统(injector),并且声明需要提供给工厂函数的依赖.它们的依赖在测试中可以是虚拟的,这使得它们能很好地被测试. 注册服务 要注册服务,你首先要

Symfony2 学习笔记之服务容器

现在的PHP应用程序都是面向对象开发,所以主要是由对象构成.有的对象可以方便的分发邮件信息而有的可能帮你把信息写入到数据库中.在你的应用程序中,你可能创建一个对象用于管理你的产品库存,或者另外一个对象处理来自第三方API的数据.重要的是现在应用程序要做的这些事情都是被组织到许许多多的对象中来处理它的每一项任务的. 我们将套路一下Symfony2中一个特殊的PHP对象,它帮助我们实例化,组织和获取你应用程序汇总的许多对象.这个对象叫做服务容器,它可以帮助你使用标准统一的方式来创建你程序中的对象.它

angularjs学习:服务

使用angular.module().factory('xxxService',function(){}) 来创建服务. factory('xxxService',function(){}) 或factory('xxxService',[])的第2个参数可以是一个function函数,或是一个数组函数. 所有服务工厂factory()都是由$provide服务创建的,$provide服务负责在初始化这些服务. 所有创建服务的方法都构建在provider方法之上.provider()方法负责在$p

datasnap——动态注册服务类

datasnap——动态注册服务类 在DataSnap的应用程序时,我们首先需要注册的服务器类,以提供访问客户端应用程序的服务器方法.通常的做法是使用DSServerClass组件,但有些时候,我们要做到在运行时加载.下面代码实现的类TSimpleServerClass从TDSServerClass继承,超载了Create方法并且增加了ServerClass,DataSnap Server和LifeCycle三个参数. type TSimpleServerClass = class(TDSSer

(二)Redis的安装及配置(3)---注册服务与自动启动

注册服务 所谓注册服务就是把一个程序变成Linux的系统服务,在指定运行级别上赋予关闭和启动的入口. 默认情况下redis不支持服务注册,会报错. 在拷贝到/etc/rc.d/init.d/中的redis脚本中修改如下(之前已经拷贝过去):加入chkconfig:2345 90 10.2345是运行级别,就是告诉chkconfig程序,需要在rc2.d.rc3.d.rc4.d和rc5.d目录下创建为S90redis的文件链接,链接到/etc/rc.d/init.d目录下的redis脚本.第一个字

mysql+Apache+php环境配置中安装Apache,注册服务出现“(OS 5)拒绝访问的解决方法

安装Apache,注册服务出现“(OS 5)拒绝访问的解决方法     windows安装Apache,注册服务出现“(OS 5)拒绝访问. : AH00369: Failed to open the WinNT service manager..."错误 其实很简单,只要在C:\Windows\SysWOW64目录下找到CMD.EXE文件,在这个文件上右键以管理员身份运行即可 然后再次httpd.exe -k install 安装apache服务就成功了

批处理判断操作系统32位或64位,并注册服务

1 @echo off 2 if /i "%PROCESSOR_IDENTIFIER:~0,3%" == "x86" goto 1 /////通过参数判定操作系统位数,并跳转 3 if /i "%PROCESSOR_IDENTIFIER:~0,3%" NEQ "x86" goto 2 ///此条语句后面可以改为 EQU "EM6" 4 :1 /////32位注册服务 5 @echo 32bit 6 Regs

MongoDB 通过配置文件启动及注册服务

1.配置mongodb环境变量,配置完成之后就可以直接执行mong.mongod等常用命令,不用每次都到mongodb安装目录bin下去执行: 2.通过命令启动mongo服务 mongod --dbpath = D:\mongodb\data\db --logpath = D:\mongodb\data\log\mongod.log 3.每次都通过命令去启动mongod太麻烦,那就注册系统服务 mongod --install --dbpath = D:\mongodb\data\db --lo

上课笔记_Web服务,XFire的一个例子

Web服务优点 互操作性:实现不同系统间的相互调用(语言无关.平台无关) Web服务是什么 Web 服务是一类应用程序,是能够用编程的方法通过Web调用来实现某个功能的应用程序 Web服务的体系结构 Web服务需要遵守的技术标准 1. XML(描述WEB服务数据的标准方法) 2. SOAP(表示WEB服务信息交换的协议) 3. WSDL(WEB服务描述语言) 4. UDDI(统一描述发现和集成) 这里关于WebService就不多加详细介绍了,如果有兴趣可以查看百度百科 WebService,我