• angular.js 中的作用域 数据模型 控制器


    1.angular.js 作为后起之秀的前端mvc框架,他于传统的前端框架都不同,我们再也不需要在html中嵌入脚本来操作对象了.
    它抽象出了数据模型,控制器及视图.

    成功解耦了应用逻辑,数据模型,视图.

    2.它的视图也不是后台统一替换后渲染页面,而是视图被动态实时替换.

    视图上可以通过指定的 angular.js 指令来绑定模型数据.模型数据的变化又会直接影响视图的变化.

    3.控制器就像一座桥梁,负责连接模型和视图, 模型里包括数据和与数据进行交互的方法.

    视图只负责把模型数据的映射显示给用户.

    4.angular.js 会记录数据模型中的数据在任意时间点的值,如果在某个时间点,angular.js 发现当前保存的值和上次记录的值发生了变化,那么该值就被认为是"脏"的,angular.js 就会做出相应的响应变化.

    它会实时循环调用 $digest()这个方法来做脏检查,保证数据的一致性

    5.一个controller 对应一个数据模型对象 $scoe

    通过 ng-model 来将内部数据模型对象 $scope 中的属性绑定到视图的某个字段上. 

    6.$scope模型对象是一个简单的javascript对象,他的属性可以被视图访问,也可以和控制器交互.

    $scope因为上面的特性,所以实现双向绑定就是指:angular.js通过 $digest()方法来脏检查,如果视图发生改变导致模型对象某个属性有变化,自动做出相应的变化.

    如果模型某个属性发生变化,视图也会依照变化重新渲染显示.

     7.当事件循环,通常执行在顶层$scope 对象上(也就是 $rootScope) 每个作用域都执行自己的脏值检查,每个监控函数都会检查变化,如果检查到任意变化,$scope对象就会触发指定的毁掉函数.

     8.模块可以让我们避免全局变量污染,

    不同应用之间复用代码

    9.模块定义:模块名称,依赖列表

    angular.module('myApp', []); 

    10.$scope 作用域和数据模型息息相关,同时也是表达式执行的上下文,

    作用:定义应用业务逻辑和控制器方法以及视图属性.

    是素有视图的唯一源头,可以理解成视图模型.

    11.作用域提供了监视数据模型变化的能力(作用域会提供观察者监视模型的变化).

    12.允许开发者使用其中的 apply 机制,将数据模型的变化在整个应用范围内进行通知(甚至可以通知到系统外的组件)

    可以嵌套,隔离业务功能和数据.

    13.给表达式提供运算时所需的执行环境.

    14.最好的架构:将应用业务逻辑都放在控制器上,将相关数据都放在控制器作用域中.

    15. $rootScope 是所有 $scope 对象的最上层.

    $rootScope 是 Angular.js中类似于全局作用域的对象,

    $scope 类似于的 全局变量里面的 子作用域,业务逻辑写到这里面不会污染全局作用域对象.

    16.angular.js的这种模式非常像 javascript中的原型继承,根据变量首先查找当前作用域是否存在.

    如果找不到就去父作用域中查找,如果找不到,逐渐向上查找其父作用域,知道根作用域 $rootScope

    17.ng-controller 可以直接在dom上创建一个控制器.

    这个新的 $scope对象,其实就是一个子作用域.它嵌套在父作用域 $rootScope 之内.

    18.当angular.js 关心的事件发生时,angular.js 就会监控应用程序内的多有对象,脏值检测循环等.

    那么什么事件是 angular.js 关心的呢? 比如 绑定了 ng-model 的输入框文本变化时,绑定了 ng-click的按钮被点击时 等

  • 相关阅读:
    20121025
    活到老学到老
    VS2012 正式版BUG太多
    JSP页面basePath路径问题
    这样的日子
    正确用JQ的AJAX加载XML并解析
    JSP中的5中转发方式
    C#编码规范
    jsp判断用户是否在线
    beging
  • 原文地址:https://www.cnblogs.com/ilinuxer/p/5232645.html
Copyright © 2020-2023  润新知