`

AngularJs-学习笔记2

阅读更多

AngularJs-学习笔记

 

依赖注入

 

优先参考博客http://www.360doc.com/content/16/1012/19/37255821_597927218.shtml

                       http://www.cnblogs.com/joyco773/p/5702337.html

 

  • value
  • factory
  • service
  • provider
  • constant

1.创建方式:

  • 直接通过模块:
  • app.value();
  • app.factory();
  • app.service();
  • app.provider();
  • app.constant();
  • 其实其他的controller,directive,filter等 也是直接通过 app 的函数去创建
  • 加载顺序 app.constant() -> app.provider()->app.config -> app.run().   
  • 通过内置服务$provider在config函数中创建:

          $provider.value();

  • $provider.factory();
  • $provider.service();
  • $provider.provider();
  • 总结 -- 以下提到的都是包含以上两种方式创建的 
  • 1.通过上面的加载顺序已经$provider没有constant方法,并且constant方法不可以在config阶段配置,$porvider.declator()可以修饰以上除constant以外
  • 2.service&factory 调用以上方法仅是注册,只有在通过以下方式注入controller时才会实例化,但是provider以上方法时已经实例化,这也是为什么自定义provider可以在config阶段修改的原因
  • 3.通过以上定义的name在controller注入时  实际注入的就是这个 对象,函数或者value. 
  •    a.app.service(‘servicename’, function()); app.controller('myController', servicename);或者$provider 创建
  •       service创建时,不返回任何对象,就是在设置自身 -- 在controller中调用时就是这个servicename 本身
  •    b.app.factory(‘servicename’, function()); app.controller('myController', servicename);或者$provider 创建
  •        factory可以return一个 对象,函数,value 给 --在controller中调用方式,对象:servicename.variable  servicename.method(). 函数: servicename();, value: servicename.
  •    c.app.provider(‘servicename’, function()); app.controller('myController', servicename);或者$provider 创建
  •        provider就是一个可在config阶段配置的factory,就是$get = 一个factory函数,所以也是可以返回一个对象,函数,value  --在controller中调用方式,对象:servicename.variable  servicename.method(). 函数: servicename();, value: servicename
  •        servicename对应的是服务,是由provider提供的这个服务,所以驼峰法命名,provider的名应该是servicenameProvider, 然后可以将servicenameProvider传入一个或者多个config中进行配置
  •   

2. 以上注入controller方式:

 

     方式1(内联注解,推荐使用):

    app.controller('myController', ['$scope', 'dateFilter', function ($scope, dateFilter) { }]);  

     方式2($inject注解):

      var MyController = function($scope, dateFilter) {}  
  1.      MyController.$inject = ['$scope', 'dateFilter'];  
  2.      someModule.controller('MyController', MyController);  

     方式3(隐式注解,不推荐使用):

     app.controller('myController', function ($scope, dateFilter) { });  
其实以上方式不仅可以用于注入contorller,注入其他事工厂函数同样可以
config及run阶段
 1. config(),只有$provider,自定义provider,内置provider已经$injector可以注入
 config参考博客-http://www.ituring.com.cn/tupubarticle/1385
 2.$injector需进一步学习
 
controller之间通信 - 事件通信及服务通信
参考博客-http://www.tuicool.com/articles/InuMF3J
 
路由
参考博客: http://www.cnblogs.com/xing901022/p/5154358.html
 
AngularJS promise - $q
参考博客: https://segmentfault.com/a/1190000002788733
              http://www.jb51.net/article/61638.htm
 
AngularJS API
参考: http://www.runoob.com/angularjs/angularjs-reference.html
 
$watch()及$apply()
简单来说 -
$watch() 监控DOM上数据变化时,绑定数据到scope,自定义指令中的link函数中使用它来实现数据绑定
$apply() 就是当执行angularjs序列外的代码是 使用它来调用
参考博客: http://blog.csdn.net/christine95/article/details/49201443
分享到:
评论

相关推荐

    AngularJS学习笔记

    AngularJS 学习笔记_邹业盛_angularjs-learn note

    JS AngularJS 学习笔记

    **AngularJS 框架详解** AngularJS 是一个强大的JavaScript框架,由Google维护,用于构建动态Web应用。它通过MVC(模型-视图-控制器...通过深入学习和实践,你可以有效地利用AngularJS构建高效、可维护的Web应用程序。

    angularJs个人学习笔记及源码

    这个压缩包包含了作者个人的学习笔记和AngularJS的源码分析,这对于深入理解AngularJS的工作原理及其应用场景非常有帮助。让我们逐一探讨这些知识点。 1. **AngularJS基础**: AngularJS的核心特性包括数据绑定、...

    angularjs学习笔记

    **AngularJS学习笔记** AngularJS,作为一款强大的前端JavaScript框架,由Google维护,主要用于构建单页应用程序(SPA)。它的核心特性包括数据绑定、依赖注入、模块化和指令系统,极大地简化了网页应用的开发流程...

    AngularJS 学习笔记.pdf

    总而言之,这份AngularJS的学习笔记为初学者提供了一个由浅入深、涵盖AngularJS基础知识和核心概念的全面指南。通过对这份笔记的学习,初学者可以逐步掌握AngularJS的使用,从而有效地进行前端开发。

    AngularJS学习笔记 - 进出自由,我的分享1

    【AngularJS学习笔记 - 进出自由,我的分享1】 AngularJS是一款由Google开发的JavaScript框架,用于构建富客户端Web应用程序。它强调数据绑定和依赖注入,简化了前端开发流程,尤其是在实现MVC(模型-视图-控制器)...

    AngularJs学习笔记.docx

    ### AngularJS 学习笔记 #### 一、AngularJS 概述 AngularJS 是一个用于构建动态Web应用的开源框架,由 Google 维护。它通过扩展 HTML 的功能来简化 Web 开发,并允许开发者以声明式的方式编写代码,极大地提高了...

    Codecademy-AngularJS-Projects

    **文件名称列表:** "Codecademy-AngularJS-Projects-master" 这个文件名可能代表这是一个GitHub仓库的主分支,"master"通常是GitHub仓库的默认分支,可能包含了整个项目的学习路径、源代码、笔记或者其他资源。...

    angularjs学习笔记本

    这个"angularjs学习笔记本"很可能是包含了关于AngularJS的学习资料、示例代码和教程。AngularJS的核心特性是它使用了MVC(Model-View-Controller)架构模式,提供数据绑定和依赖注入,简化了前端开发。 在AngularJS...

    AngularJs学习笔记1

    【AngularJS学习笔记1】 AngularJS 是一个强大的前端JavaScript框架,用于构建动态Web应用程序。它通过数据绑定和依赖注入简化了HTML页面与JavaScript代码之间的交互。这篇笔记将深入探讨AngularJS的一些基本概念,...

    angularJS_学习资料

    ### 四、AngularJs学习笔记 学习笔记通常包含个人对AngularJS理解的深入点,可能包括一些高级话题,如脏检查(Dirty Checking)、$digest循环,以及如何优化性能。笔记可能还包括解决常见问题的方法,以及作者在...

    angularjs-studies:我对angular.js的研究

    AngularJS 是一个强大的JavaScript框架,由Google维护,用于构建单页Web应用...文件列表中的"angularjs-studies-main"可能包含了项目源码、示例、笔记或其他相关资源,进一步研究这些内容将有助于巩固AngularJS的知识。

    AngularJS学习笔记.pdf

    ### AngularJS 学习笔记知识点总结 #### 一、AngularJS 概述 AngularJS 是由 Google 开发的一款开源 JavaScript 库,它提供了一种全新的应用程序组织与开发方式。AngularJS 的核心特性之一就是**数据双向绑定**,...

    AngularJS 学习笔记(表单验证篇)

    本学习笔记将深入探讨AngularJS中的表单验证机制,主要包括以下几个方面: 1. **AngularJS 表单基础**: AngularJS中的表单是基于HTML的,但通过添加`ng-form`指令,可以将其提升为一个AngularJS感知的表单。表单...

    AngularJS1.X学习笔记2-数据绑定详解

    2. {{}}插值表达式:同样用于实现单向数据绑定。它是最常用的数据绑定方式,将一个表达式的值显示在双大括号内。这种方式主要用于将数据绑定到视图的文本内容上。比如,可以将模型中的字符串变量绑定到div元素中的...

Global site tag (gtag.js) - Google Analytics