angular中自定义依赖注入的方法和decorator修饰
自定义依赖注入的方法
1.factory('name',function () {
return function(){
}
});
2.provider('name',function(){
this.$get=function(){
return function(){
}
};
});
3.service('name',function(){
this.n=v;
});
4.constant('name','value');
5value('name','value');
依赖的继承 $delegate指的是当前的数据
decorator('name',function($delegate){
$delegata.a=12;
return $delegate.a;
});
<!doctype html>
<html ng-app="text">
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script src="angular.js"></script>
<script>
var app=angular.module('text',[]);
//1>factory 最简单的方式,angular中实现方式相当于这里定义了,用的时候直接调用
app.factory('sum',function(){
return function(num1,num2){
return num1+num2;
};
});
app.controller('cont1',function($scope,sum){
alert(sum(12,5));
}); //2>provider 供应者,专门提供的,并且可以配置
app.provider('formJson',function(){
//此处的this相当于在原生js中的构造函数中new provider
this.$get=function(){
return {
a:12,
b:5
}
};
});
app.controller('cont2',['$scope','formJson',function($scope,formJson){
console.log(formJson);
}]); //3>servier 服务 这种方法不用return 直接在servier上挂载即可
app.service('dataText',function(){
this.showName='Jason';
this.showAge=18;
});
app.controller('cont3',['$scope','dataText',function($scope,dataText){
console.log('name:'+dataText.showName+';age:'+dataText.showAge);
}]); //4>constant 常量 不能修饰,也就是不能使用decorator的方法
app.constant('wumai','1000');
app.controller('cont4',['$scope','wumai',function($scope,wumai){
console.log('北京的PM2.5:'+wumai);
}]); //value 变量 可以修饰
app.value('jiaozi','delicious'); //decorator angular中依赖是可以继承的,也就是装饰是可以继承的
app.decorator('jiaozi',function($delegate){
$delegate.jiaozi='delicious!!!';
return $delegate;
}); app.controller('cont5',['$scope','jiaozi',function($scope,jiaozi){
console.log('冬至的饺子:'+jiaozi);
}]); </script>
</head> <body>
<div ng-controller="cont1"></div>
<div ng-controller="cont2"></div>
<div ng-controller="cont3"></div>
<div ng-controller="cont4"></div>
<div ng-controller="cont5"></div>
</body>
</html>
angular中自定义依赖注入的方法和decorator修饰的更多相关文章
- Angular4中的依赖注入
在Angular中使用依赖注入,可以帮助我们实现松耦合,可以说只有在组件中使用依赖注入才能真正 的实现可重用的组件. 如果我们有个服务product.service.ts,其中export了一个Pro ...
- Asp.net core自定义依赖注入容器,替换自带容器
依赖注入 在asp.net core程序中,众所周知,依赖注入基本上贯穿了整个项目,以通用的结构来讲解,控制器层(Controller层)依赖业务层(Service层),业务层依赖于仓储层(Repos ...
- ASP.NET Core中的依赖注入(1):控制反转(IoC)
ASP.NET Core在启动以及后续针对每个请求的处理过程中的各个环节都需要相应的组件提供相应的服务,为了方便对这些组件进行定制,ASP.NET通过定义接口的方式对它们进行了"标准化&qu ...
- 转: 理解AngularJS中的依赖注入
理解AngularJS中的依赖注入 AngularJS中的依赖注入非常的有用,它同时也是我们能够轻松对组件进行测试的关键所在.在本文中我们将会解释AngularJS依赖注入系统是如何运行的. Prov ...
- 理解AngularJS中的依赖注入
点击查看AngularJS系列目录 理解AngularJS中的依赖注入 AngularJS中的依赖注入非常的有用,它同时也是我们能够轻松对组件进行测试的关键所在.在本文中我们将会解释AngularJS ...
- ABP中的依赖注入思想
在充分理解整个ABP系统架构之前首先必须充分了解ABP中最重要的依赖注入思想,在后面会具体举出一些实例来帮助你充分了解ABP中的依赖注入思想,在了解这个之前我们首先来看看什么是依赖注入?来看看维基百科 ...
- Android 和 Dagger 2 中的依赖注入
原文:Dependency Injection in Android with Dagger 2 作者:Joe Howard 译者:kmyhy 在现代开发团队中到处充斥着"你一定要用依赖注入 ...
- ASP.NET Core中的依赖注入(5): ServiceProvider实现揭秘 【总体设计 】
本系列前面的文章我们主要以编程的角度对ASP.NET Core的依赖注入系统进行了详细的介绍,如果读者朋友们对这些内容具有深刻的理解,我相信你们已经可以正确是使用这些与依赖注入相关的API了.如果你还 ...
- ASP.NET Core中的依赖注入(5):ServicePrvider实现揭秘【补充漏掉的细节】
到目前为止,我们定义的ServiceProvider已经实现了基本的服务提供和回收功能,但是依然漏掉了一些必需的细节特性.这些特性包括如何针对IServiceProvider接口提供一个Service ...
随机推荐
- python基础之数据类型(一)
Python3 数字(Number) 定义:a=1 特性: 1.只能存放一个值 2.一经定义,不可更改 3.直接访问 分类:整型,长整型,布尔,浮点,复数 python2.*与python3.*关于整 ...
- Lind.DDD~实体属性变更追踪器的实现
回到目录 看着这个标题很复杂,大叔把它拆开说一下,实体属性-变更-追踪器,把它拆成三部分大家看起来就容易懂一些了,实体属性:领域实体里有自己的属性,属性有getter,setter块,用来返回和设置属 ...
- C#中JSON序列化和反序列化
有一段时间没有到博客园写技术博客了,不过每天逛逛博客园中大牛的博客还是有的,学无止境…… 最近在写些调用他人接口的程序,用到了大量的JSON.XML序列化和反序列化,今天就来总结下json的序列化和反 ...
- jQuery拖拽改变元素大小
一个非常简单的例子,体验效果:http://keleyi.com/keleyi/phtml/jqtexiao/29.htm 以下是完整代码,保存到HTML文件打开也可以体验效果. <!DOCTY ...
- less hack 兼容
less hack 兼容 css做兼容是在所难免的,那么用less写css代码时怎样hack呢?倘若用css的方法直接在后面写上类似“\9”编译是要报错的.下面是我尝试的两个小方法仅供参考: 1. ...
- iOS 多线程GCD的基本使用
<iOS多线程简介>中提到:GCD中有2个核心概念:1.任务(执行什么操作)2.队列(用来存放任务) 那么多线程GCD的基本使用有哪些呢? 可以分以下多种情况: 1.异步函数 + 并发队列 ...
- HTML5快速入门(三)—— 标签综合运用
前言: 1.HTML5的发展非常迅速,可以说已经是前端开发人员的标配,在电商类型的APP中更是运用广泛,这个系列的文章是本人自己整理,尽量将开发中不常用到的剔除,将经常使用的拿出来,使需要的朋友能够真 ...
- iOS crash 追终 ,iOS 如何定位crash 位置
https://developer.apple.com/library/ios/technotes/tn2151/_index.html 错误分析是基于设备中的crash log 与 编译文件时生成的 ...
- Java打印九九乘法表
package com.czgo; /** * 九九乘法表 * * @author AlanLee * */ public class Print99 { public static void mai ...
- Linux查看设置系统时区
关于时区的概念,其实初中地理课已经涉及,很多人都多少了解一些,可能只是细节搞不太清楚.为什么会将地球分为不同时区呢?因为地球总是自西向东自转,东边总比西边先看到太阳,东边的时间也总比西边的早.东边时刻 ...