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',);
console.log(MyFactory.ShowInfo());
});
二. Service
1. Service与Factory用法差不多,区别在于不需要Return一个对象.
var app = angular.module('myapp')
app.controller('InjectCtrl',function ($scope,MyService) {
MyService.SetInfo('Frank',);
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;
}
});
AngularJS笔记---注册服务的更多相关文章
- angularJS笔记之 服务
angular的服务有五种 第一种 constant 一般作为一种常量的服务 不可更改 第二种 value 用来注册服务对象或函数 可更改 第三种 factory 创建和配置服务的最快捷方式.可更改 ...
- AngularJs(Part 3)--注册服务
有以下5中方法注册一个AngularJS可以识别的Service value和constant是两个极其简单的方法,只有少数情况下会使用. service已经开始复杂了起来.而factory是我认为既 ...
- AngularJS开发指南15:AngularJS的创建服务,将服务注入到控制器,管理服务依赖详解
创建服务 虽然AngularJS提供了很多有用的服务,但是如果你要创建一个很棒的应用,你可能还是要写自己的服务.你可以通过在模块中注册一个服务工厂函数,或者通过Module#factory api或者 ...
- AngularJs中的服务
一.angularJs中的简单服务应用 下面的例子让我们明白在AngularJs中如何去调用文件中的数据,从而将文件中的数据显示在页面上;改变url的地址,也可以去调用后台接口. 实例: <!D ...
- SpringCloud学习笔记:服务支撑组件
SpringCloud学习笔记:服务支撑组件 服务支撑组件 在微服务的演进过程中,为了最大化利用微服务的优势,保障系统的高可用性,需要通过一些服务支撑组件来协助服务间有效的协作.各个服务支撑组件的原理 ...
- AngularJs之六(服务)
服务:AngularJS 中,服务是一个函数或对象,可在你的 AngularJS 应用中使用.AngularJS 内建了30 多个服务. 最常用的服务:$location 服务, $http 服务 ...
- C#操作注册服务卸载服务启动服务停止服务.. .
using Microsoft.Win32; using System; using System.Collections; using System.Collections.Generic; usi ...
- 让AngularJS的$http 服务像jQuery.ajax()一样工作
让AngularJS的$http 服务像jQuery.ajax()一样工作 $http的post . 请求默认的content-Type=application/json . 提交的是json对象的字 ...
- AngularJs $http 请求服务
$http $http是Angular的一个核心服务,它有利于浏览器通过XMLHttpRequest 对象或者 JSONP和远程HTTP服务器交互. $HTTP API 是基于 $q服务暴露的defe ...
随机推荐
- C#图片加水印实例与代码
本文要提供的类可以为图片加文字水印,以及判断是否是图片文件.经过测试可运行,例子请下载:http://hovertree.com/h/bjaf/5qc5eh6y.htm 例子效果图: 以下是Hover ...
- ASP.NET Core开发-获取所有注入(DI)服务
获取ASP.NET Core中所有注入(DI)服务,在ASP.NET Core中加入了Dependency Injection依赖注入. 我们在Controller,或者在ASP.NET Core程序 ...
- SQL Server 2005 数据库 可疑状态
KJDY数据库名称 ALTER DATABASE KJDY SET EMERGENCY ---修改数据库为 紧急模式 ALTER DATABASE KJDY SET SINGLE_USER ---单用 ...
- 模仿迅L看看<音频播放器> 实现点击进度条,跳转播放
<Style x:Key="btnFallback" TargetType="{x:Type Button}"> <Setter Proper ...
- LinQ C#防注入式攻击实例代码
注入式攻击是Web开放项目中开发人员的第一时间要考虑的问题,下面就我的开发实例分享给大家,有用的的话就点个赞吧. 定義賬戶信息類 public class UserInfors { public st ...
- [修正] iOS 10 使用相机及相簿闪退的问题修正
iOS 10 新规定,在取用相机,相簿,联络资讯,麦克风需要在 Version Info 加入指定的 key,否则闪退: 注:将下面的 Key 复制到工程 Option -> Version I ...
- win10平台mysql5.6.34免安装版(绿色版zip)的配置以及密码和编码设置
平台:win10 X64 mysql: mysql-5.6.34-winx64.zip 以下所写都是本人测试过的,力争无误.上次发布了,可是发现了一些问题,特地查了一下官方文档(我会说我是用有道词典翻 ...
- <%@ page contentType="text/html; charset=utf-8" language="java"%>每一个字符的含义
contentType="text/html:网页类型htmlcharset=utf-8"网页编码类型language="java"网页编程语言<% @ ...
- ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- .NET 各种框架
基于.NET平台常用的框架整理 分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度 ...