学习笔记

全局作用域

在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域:

(1)最外层函数和在最外层函数外面定义的变量拥有全局作用域
(2)所有末定义直接赋值的变量自动声明为拥有全局作用域
(3)所有window对象的属性拥有全局作用域

作用域链

该内部属性包含了函数被创建的作用域中对象的集合,这个集合被称为函数的作用域链,它决定了哪些数据能被函数访问。

var a = 1;
 //全局作用域,只能访问全局变量,也就是a变量
 function A(){
var b = 2;
//A函数的局部作用域,可以访问到a,b变量,但是访问不到c变量
function B(){
//B函数局部作用域,可以访问到a,b,c变量
var c = 3;
}
}

function A(){
var arr = [];
function a(){};
function b(){};
return;
}
这样,我们本来需要三个全局变量的问题,就变成了只需要一个

Angular MVC

1. 声明一个ng的应用程序 ngApp

    <html ng-app></html> <ng-app></>

2. 创建一个自定义的模块:angular.module("模块名",[依赖列表])

     angular.module.("myModule",["ng"]) angular.module() 

3. 在应用中注册自定义模块 ng-app="模块名"

    <html ng-app="myModule"></html> 

4. 在模块中声明Controller

      angular.module.("myModule",["ng"]).controller("myContro",function(){

        

      }); 

5.  在view中指定Controller对象的作用范围-调用控制器创建函数
         
     <div ng-controller="myContro">
        {{name}}
     </div>


6. 在Controller中声明Modal数据

     angular.module.("myModule",["ng"]).controller("myContro",function($scope){

         #$scope.name = "gg";

      });

AngularJS 双向数据绑定

方向1

Model绑定到View,此后不论何时只要Model发生改变,立即会自动同步更新

实现方法 {{}} ng-bind ngif ngRepeat="变量名 in 数组"...几乎所有的显示数据的指令都实现了方向1的绑定

方向2

view绑定到model,把视图中可以修改的HTML元素,即表单控件的值绑定到模型变量上。此后,只要用户修改了表单控件的值后,后台模型变量的值会立即随之改变

Html:

名字: <input type="text" ng-model="name"/>  <span>{{name}}</span>
密码: <input type="text" ng-model="password"/> <span>{{password}}</span>

JS:

   angular.module("myModule",["ng"]).controller("contro",function($scope){
        
         $scope.$watch("name+password",function(){         
            
            console.log($scope.name);
            console.log($scope.password);
            
         });

推荐阅读更多精彩内容