AngularJS基础学习笔记

本文详细介绍了AngularJS的基础知识,包括它作为前端MVC框架的特点,如何克服HTML的局限,以及其核心功能:模块化、双向数据绑定、依赖注入。文章深入探讨了AngularJS的MVC模式,对比了它与jQuery的区别,并提供了关于控制器、指令、数据绑定和作用域的实例。此外,还介绍了AngularJS中的过滤器和路由,并提到了项目管理和构建工具如bower和gulp的使用。
摘要由CSDN通过智能技术生成

 

  • Angular是什么?优点?

    • 前端MVC框架

    • 克服了HTML在构建应用上的诸多不足

  • 特点

    • jQuery以dom为驱动(核心)

    • angularjs以数据和逻辑作为驱动(核心)

    • 最核心的是:模块化、双向数据绑定、语义化标签、依赖注入

  • MVC是一种开发模式

    • M-->model一般用来处理数据(读取/设置),一般用来操作数据库

    • V-->view一般用来展示数据,比如通过HTML展示

    • C-->controller一般用做连接模型和视图的桥梁

  • thinkPHP:

    __PUBLIC__==>得到thinkPHP中的public的路径 assign(title,$title)$title内容分配给title:数据分配 assign(赋值给谁,变量)

  • 模块化

    • 一旦引入angularJS框架,就会提供一个全局的对象:angular,此对象下有N多方法,其中module方法可以帮我们创建一个模块

      var App = angular.module('App',[]);

      App就是新创建的模块,这个模块又是一个对象,此对象下又有N多方法,可以实现具体业务逻辑

      所以真正实现业务的是App,angular.module()只是构造一个模块

    • App.controller('DemoCotroller',['$scope',function($scope){}]);第一个参数是控制器名称

      • 使用套路:

        要使用ng-app指定联合那个模块,使用ng-controller指定是那个控制器

      • 使用方法:

        <div class="box" **ng-app='App'**>
              <div **ng-controller='DemoCotroller'**>
             <h1>{
                {name}}在{
                {school}}学习使用angularjs</h1>
              </div>
           </div>
           <!-- 引入angularJS框架 -->
           <script src="js/angular.js"></script>
           <script> 
           **var App = angular.module('App',[]);**
           **App.controller('DemoCotroller',['$scope',function($scope){
            // $scope是一个空的对象,此对象就是model
            $scope.name = 'zs';
            $scope.shool = '微博';
           }]);**
           </script>
  • 指令:

    • 内置指令:

      • ng-repeat='(key,数组别名) in 数组名' { {数组别名}}可以得到一个个的数组内容 { {key}}可以得到索引

      • ng-app:制定应用根元素,至少有一个元素指定此属性

      • ng-controller:指定控制器

      • ng-show :控制元素是否显示,true显示

      • ng-hide:控制元素是否隐藏,true隐藏

      • ng-if:控制元素是否存在,true存在、false不存在

      • ng-src:增强图片路径

      • ng-href:增强地址

      • ng-class='{类名:布尔值}':控制类名,true类名有效,false类名无效

        • 值可以是字符串,对象或者一个数组,字符串多个用空格分隔,数组可以由字符或对象组成。

      • ng-bind:绑定

      • ng-include:引入模块,必须放在服务器下面,js本身是读取不了本地文件的

      • ....

    • 自定义指令:angularjs自定义指令就是HTML属性或者标签,这些指令都是以ng-作为前缀

      • 通过模块实例对象的directive()方法可以自定义指令

        App.directive('指令名',function(){
             return{
                restrict:'EM',
                template:'想要表达的模板',
                templateUrl:'引入外来模板的路径'
             }
           })
           <--directive:tag-->  注释
           E(Element)表示该指令是一个element; A(Attribute)表示该指令是attribute; 
           C(Class)表示该指令是class; M(Mark replace)表示该指令是注释,必须为true否则出不来
  • 数据绑定

    • 单向绑定:

      • 将模型(model)数据绑定到视图(view)上

    • 双向绑定:

      • 模型向视图、视图向模型

    • 单项绑定:

      *注意*:ng-bind="表达式"  可以解析
              ng-bind-template='字符串'  不可以解析
              所以ng-bind后直接是name可以自己去解析,ng-bind-template后面是{
            {}},{
            {}}解析后的返回值再作为字符串给ng-bind-template
      • { {}}和ng-bind指令来实现模型(model)数据向视图(view)的绑定

      • { {}}是ng-bind的另一种写法,优点:更简单 缺点:会有一瞬间的闪动,可以通过添加ng-cloak来解决此问题,原理:添加style样式,设为none等angular编译后在设为block

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值