• 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>
    

      

  • 相关阅读:
    第一章 基础知识
    第1条:考虑用静态工厂方法代替构造器
    spring cloud(断路器——初学五)
    spring cloud(断路器——初学四)
    spring cloud(服务消费者(利用feign实现服务消费及负载均衡)——初学三)
    在阿里云的ubuntu服务器上安装xampp时出现unable to realloc unable to realloc 8380000 bytes错误
    laravel中ubuntu下执行php artisan migrate总是报错
    windows下安装php依赖关系管理工具composer
    apk下载的网址生成一个二维码
    android apk的签名和权限问题
  • 原文地址:https://www.cnblogs.com/jasonwang2y60/p/6209481.html
Copyright © 2020-2023  润新知