首页 > 代码库 > AngularJS学习笔记一

AngularJS学习笔记一

1 首先将angular.js引入;

2 然后写指令如下

<body ng-app="myApp">
</body>

ng-app的指令 指定一个app的入口 开始,所有的ng-XXX形式的是angular已经内置好的指令。

3 写控制器

<div  ng-controller="MyController">
        <input ng-model="name" type="text" placeholder="Your name">
        <h1>Hello {{ name }}</h1>
</div>    

ng-controller指令 指定一个控制器 去控制内容;

ng-model 将value值和scope上的name属性绑定;

{{}} 插值表达式。

4 实例化和controller参数注入

var app=angular.module("myApp",[]);      //初始化
app.controller(‘MyController‘, ["$scope",function($scope){
    $scope.name="miao";
}])

 声明一个名为myApp的module,第一个参数module名,第二个参数[‘MM‘...]数组,依赖其他的module名组成的数组;

如果没有任何其他的依赖module的话,也需要传一个[]的进去;

 如果第二个参数没有的话 angular会默认认为去取得module的实例;

创建名为MyController的controller,第二个参数是一个函数,当然函数是需要参数的;

注意的是,controller中的参数是通过angular的依赖注入机制依赖注入的,依赖注入的方式有3种:

 1:function(a, b...) {} 这样的,原理就是angular通过把函数toString,
   匹配到函数中的参数,然后注入的;这样有个问题,在项目上线的时候怎么办
   一般咱们都会压缩混淆代码,变量名会被替换掉,所以这种方式在实际应用中
   很少会用 除非你不回去压缩混淆 ;
 2:[‘a‘, ‘b‘, function(a, b) {}] 这种方式是一个数组,前面所有参数都是
  依赖项,最后一个是真正的函数,所以这里在函数的参数中,并不一定是a ,b了
  任意名字即可了,所以不存在压缩混淆的问题 ;
 3:fun = function(a, b) {};fun.$inject = [‘a‘, ‘b‘]; 也是可以的 ;

我用的是第二种。

实现效果如下:

技术分享

 

AngularJS学习笔记一