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");

  • 相关阅读:
    Swift try try! try?使用和区别
    Sitemesh 3 配置和使用(最新)
    idea + mybatis generator + maven 插件使用
    (五)Hololens Unity 开发之 手势识别
    (四)Hololens Unity 开发之 凝视系统
    (二)Hololens Unity 开发入门 之 Hello HoloLens~
    (三)Hololens Unity 开发之 语音识别
    (一)Hololens Unity 开发环境搭建(Mac BOOTCAMP WIN10)
    iOS多线程技术方案
    基于OpenSSL的RSA加密应用(非算法)
  • 原文地址:https://www.cnblogs.com/VARForrest/p/7827581.html
Copyright © 2011-2022 走看看