1. $rootScope是angularJS中最接近全局作用域的对象。在$rootScope上附加太多业务逻辑并不是好主意,这与污染JavaScript的全局作用域是一样的。
  2. $scope对象就是一个普通的JavaScript对象,我们可以在其上随意修改或添加属性。
  3. 在AngularJS应用的模板中使用多种标记
    • 指令:将DOM元素增强为可复用的DOM组件的属性或元素。
    • 值绑定:模板语法{{ }}可以将表达式绑定到视图上。
    • 过滤器:可以在视图中使用的函数,用来进行格式化。
    • 表单控件:用来检验用户输入的控件。
  4. 作用域有以下的基本功能: 
    • 提供观察者以监视数据模型的变化;
    • 提供观察者以监视数据模型的变化;
    • 可以进行嵌套,隔离业务功能和数据;
    • 给表达式提供运算时所需的执行环境。
  5. $scope对象的生命周期处理有四个不同阶段。
    • 创建
      在创建控制器或指令时,AngularJS会用$injector创建一个新的作用域,并在这个新建的控
      制器或指令运行时将作用域传递进去。

    • 链接
      当Angular开始运行时,所有的$scope对象都会附加或者链接到视图中。所有创建$scope对
      象的函数也会将自身附加到视图中。这些作用域将会注册当Angular应用上下文中发生变化时需
      要运行的函数。
      这些函数被称为$watch函数,Angular通过这些函数获知何时启动事件循环。

    • 更新
      当事件循环运行时,它通常执行在顶层$scope对象上(被称作$rootScope),每个子作用域
      都执行自己的脏值检测。每个监控函数都会检查变化。如果检测到任意变化,$scope对象就会触
      发指定的回调函数。

    • 销毁
      当一个$scope在视图中不再需要时,这个作用域将会清理和销毁自己。
      尽管永远不会需要清理作用域(因为Angular会为你处理),但是知道是谁创建了这个作用域
      还是有用的,因为你可以使用这个$scope上叫做$destory()的方法来清理这个作用域。

  6. 指令和作用域 
    • 指令在AngularJS中被广泛使用,指令通常不会创建自己的$scope,但也有例外。比如
      ng-controller和ng-repeat指令会创建自己的子作用域并将它们附加到DOM元素上。

    • 在指令内部创建的作用域被称作孤立作用域。
    • 除了孤立作用域外,所有的作用域都通过原型继承而来,也就是说它们都可以访问父级作用
      域。如果熟悉面向对象编程,对这个机制应该不会陌生。

  7. 表达式
    • 所有的表达式都在其所属的作用域内部执行,并有访问本地$scope的权限;
    • 如果表达式发生了TypeError和ReferenceError并不会抛出异常;
    • 不允许使用任何流程控制功能(条件控制,例如if/eles)
    • 可以接受过滤器和过滤器链。
  8. 插值字符串 ,$interpolate服务是一个可以接受三个参数的函数?????
    • text(字符串):一个包含字符插值标记的字符串。
    • mustHaveExpression(布尔型):如果将这个参数设为true,当传入的字符串中不含有表
      达式时会返回null。

    • trustedContext(字符串) :AngularJS会对已经进行过字符插值操作的字符串通过
      $sec.getTrusted()方法进行严格的上下文转义。

angualrjs的更多相关文章

  1. [AngualrJS] ng-strict-di

    In Angular 1.5 introduces "compoment" syntax. But ng-annotate doesn't understand ".co ...

  2. angualrJs清除定时器

    angualrJs清除定时器爬坑之路: 今天发现一个奇怪问题,放在自定义指令里边的定时器竟然在页面跳转之后,在另一个页面这个循环定时器还在执行,这肯定是不行的,会影响系统的性能. 我在angular里 ...

  3. AngularJS进阶(二十八)解决AngualrJS页面刷新导致异常显示问题

    解决AngualrJS页面刷新导致异常显示问题 绪 俗话说,细节决定成败,编程亦是如此.编程过程中我们可能会不自觉的忽视一些细节问题,殊不知,这些细节正是导致页面显示出现问题的地方.今略举一例,与君共 ...

  4. AngualrJS中每次$http请求时的一个遮罩层Directive

    在AngualrJS中使用$http每次向远程API发送请求,等待响应,这中间有些许的等待过程.如何优雅地处理这个等待过程呢? 如果我们在等待过程中弹出一个遮罩层,会是一个比较优雅的做法. 这就涉及到 ...

  5. ASP.NET Web API接受AngualrJS的QueryString的两种方式

    ASP.NET Web API如何接受来自AngualrJS的QueryString呢?本篇体验两种方式. 第一种方式:http://localhost:49705/api/products?sear ...

  6. 看angualrjs源码中怎么判断所属的类型

    下面是angualrjs的代码: function isFile(obj) { return toString.call(obj) === '[object File]'; } function is ...

  7. 认识angualrJS的resource服务

    这段时间公司有个项目要用到angularJS,于是就在网上开始各种找学习资料. 一开始下了一本<angularJS权威教程>,看了10章,实在看不下去了,只能说这本书对于才接触javasc ...

  8. angualrjs学习总结三(http、select、表格、指令以及事件)

    一:http XMLHttpRequest:$http是angularjs的一个核心服务,用于读取远程服务器的数据.$http.get(url) 是用于读取服务器数据的函数.举例:<div ng ...

  9. angualrjs学习总结二(作用域、控制器、过滤器)

    一:Scope简介 Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带.Scope 是一个对象,有可用的方法和属性.Scope 可应用在视图和控制器上. ...

随机推荐

  1. Discuz有关问题解决办法汇总

    1.Can not write to cache files, please check directory ./data/ and ./data/cache/ . 无法写入缓存 解决办法:在sour ...

  2. vim 学习日志(4):多窗口使用技巧

    原文地址: http://blog.csdn.net/devil_2009/article/details/7006113 vim多窗口使用技巧 1.打开多个窗口打开多个窗口的命令以下几个:横向切割窗 ...

  3. 一个简单的CORBA例子

    因为对CORBA分析的需要,这里写一个简单的CORBA例子.从JDK1.2开始,JDK中集成了ORB的实现,本例子使用了JDK1.7,对于JDK1.2+应该都没有问题.这个例子实现一个简单的加减乘除的 ...

  4. Intellij IDEA的激活

    选server激活,填http://www.iteblog.com/idea/key.php即可 现在改为http://idea.iteblog.com/key.php

  5. 【javascript基础】3、变量和作用域

    前言 这篇和大家说一下javascript中的变量和作用域,由于是将基础嘛,主要给大家捋一下知识,不想翻开书复习的道友可以看一下,打算刚开始学习javascript的同学可以扫一眼. PS:jQuer ...

  6. 技术那么多,你想看看JSON Schema的测试吗?

    目录 1. 什么是JSON Schema? 2. 如何定义一个JSON Schema 3. 如何测试JSON Schema a) 使用JSON Schema validator GUI b) 在Jav ...

  7. Karma:2. 集成 Karma 和 mocha 进行单元测试

    上一篇文章讨论了如何集成 Karma 和 Jasmine,地址见:Karma:1. 集成 Karma 和 Jasmine 进行单元测试 这篇文章讨论如何 Karma 集成 mocha 测试框架. 安装 ...

  8. oracle中的timestamp字段的值乱码问题修改

    我的解决方案: 直接新增一个系统变量: key值为:NLS_TIMESTAMP_FORMATvalue的值为:YYYY-MM-DD HH24:MI:SSFF6 其它解决方案: 在登录PLSQL之后,查 ...

  9. Entity Framwork(EF) 7——在Controller内获取指定字段的值

    一.开发背景: 在用户登录的时候,验证用户和密码是否正确.验证通过后将用户名和用户ID保存下来以便后续数据更新时使用. 二.用户验证方法: 1.创建DBContext 对象. ApplicationD ...

  10. teamviewer现在无法捕捉屏幕,这可能是由于快速的用户切换或远程桌面会话已经断开

    解决方法:      不用远程连接过去开启teamview,直接在在电脑本机上手动开启teamview就可以了 即:如果是mstsc远程过去开启,则会有这个错误提示,需要让服务器连接显示器,手动去登录 ...