zoukankan      html  css  js  c++  java
  • AngularJS依赖注入

    wki上依赖注入的解释:Dependency injection是一种软件设计模式(简称DI),在这种模式下,一个或者更多的依赖(服务)被注入(或者通过引用传递)到一个独立的对象中,然后成为了该独立对象的一部分。

    DI分离了客户端依赖本身行为的创建,使得程序设计模式变得松耦合,并遵循依赖反转和单一职责,域服务定位器模式形成了直接的对比,DI允许客户端了解客户端如何使用该系统找到依赖,可以这样理解:没有事你不要来找我,有事我去找你。

    AngularJS提供了很好的依赖注入机制,以下5个核心组件用来作为依赖注入:value、factory、service、provider、constant。下面一一简单学习一下。

    1、Value

    Value是一个简单的JavaScript对象,用来向控制器传递值(配置阶段),如下例子:

    var app=angular.modulr("demo",[]);

    app.value("defaultinput",5);

    app.controller("mycontroller",function($scope,CalcService,defaultinput){

    $scope.number=defaultinput;

    $scope.result=CalcService.square($scope.number);

    $scope.square=function(){

    $scope.result=CalcService.square($scope.number);

    }

    });

    2、Factory

     factory是一个函数用于返回值。在service和controller需要时创建。通常我们使用factory函数来计算或者返回值。如下使用实例:

    var app=angular.module("myapp",[]);

    app.factory("MathService",function(){

    var factory={};

    factory.multiply=function(a,b){

    return a*b;

    }

    return factory;

    });

    app.service("CalcService",function(MathService){

    this.suqare=function(a){

    return MathService.multiply(a,a);

    }

    });

    3、provider

    AngularJS中通过provider创建一个service、factory等,provider中提供一个factory方法get,用于返回valueservicefactory。

    var app=angular.module("app",[]);

    app.config(function($provider){

    $provider.provider("MathService",function(){

    this.$get=function(){

    var factory={};

    factory.multiply=function(a,b){

    return a*b;

    }

    return factory;

    }

    });

    });

    4、constant

    constant用来在配置阶段传递数值,但是要注意这个常量在配置阶段是不可用的。

      app.constant("configProgram","constant value");

  • 相关阅读:
    Python2和python3的对比
    AirtestIDE学习(一)详解(跨平台的UI自动化编辑器)
    2021/2/18 一些概念笔记
    Django学习笔记(一)
    安装python第三方包时报错
    pycharm调试nodejs代码
    postman+jwt接口做各个环境接口测试(三)
    iOS------App之间传递数据的几种方式
    iOS------教你如何APP怎么加急审核
    关于苹果延迟了App接入HTTPS服务截止日期
  • 原文地址:https://www.cnblogs.com/VARForrest/p/7827581.html
Copyright © 2011-2022 走看看