augular.js 菜鸟学习笔记 (三)

AngularJS HTML 事件


AngularJS 有自己的 HTML 事件指令。


ng-click 指令

ng-click 指令定义了一个 AngularJS 单击事件



   <div ng-app=""  ng-init="count=1">

        <button ng-click="count = count+1 ">33</button>
       {{count}}
   </div>

or


   <div ng-app="" ng-controller="count">

        <button ng-click="count = count+1 ">33</button>
       {{count}}
   </div>

   <script>
       function count($scope){
             $scope.count=1;
       }
   </script>



隐藏 HTML 元素

     ng-hide 指令用于设置应用的一部分 不可见 。

     ng-hide="true" 让 HTML 元素 不可见

     ng-hide="false" 让元素可见。

   <div ng-app="" ng-controller="peopleController">
       <button ng-click="toggle()">123</button>
       <div ng-hide="myVar">{{people.name+"  "+people.age}}</div>
   </div>

   <script>
       function peopleController ($scope){
           $scope.people={name:123,age:999} ;
           $scope.myVar=false;
           $scope.toggle = function(){
               $scope.myVar =!$scope.myVar;
           }

       }
   </script>

效果:点击123按钮时myVar取非改变div是否显示


应用解析:

    personController的第一部分与控制器章节类似。

    应用有一个默认属性: $scope.myVar = false;

   ng-hide 指令设置应用中的元素不可见。

   toggle() 函数用于切换 myVar 变量的值(true 和 false)。

   ng-hide="true" 让元素 不可见


AngularJS 模块


    模块定义了您的应用程序。

    所有的控制器都应该属于一个模块。

    模块保持全局命名空间中的整洁。


AngularJS 模块实例

     在本实例中,"myApp.js" 包含了一个应用程序模块定义,"myCtrl.js" 包含了一个控制器:


     

   <div ng-app="myapp" ng-controller="myController">
         {{name+"   "+age}}
   </div>
   <script src="lib/angular-1.2.5.min.js"></script>
   <script src="Angular1.js"></script>
   <script src="Angular2.js"></script>
Angular1.js:
   function <span style="line-height: 16.7999992370605px; font-family: 'Microsoft Yahei', 'Helvetica Neue', Helvetica, Arial, sans-serif;">myController</span><span style="line-height: 16.7999992370605px; font-family: 'Microsoft Yahei', 'Helvetica Neue', Helvetica, Arial, sans-serif;"> ($scope){</span>
      $scope.name = "aa";
      $scope.age = "bb"
   } 

Angular2.js: 

var  app = angular.module("myapp",[]);

//output   aa bb


控制器污染了全局命名空间

本教程中,截至目前为止的所有实例都使用了全局函数。

在所有的应用程序中,都应该尽量避免使用全局变量和全局函数。

全局值(变量或函数)可被其他脚本重写或破坏。

为了解决这个问题,AngularJS 使用了模块。


    


AngularJS 模块

使用一个简单的 控制器

   <div ng-app=""  ng-controller="myController">
         {{name+"   "+age}}
   </div>
   <script>

       function myController($scope){
           $scope.name = "aa";
           $scope.age = "bb"
       }
   </script>

使用模块实现

   <div ng-app="myApp" ng-controller="people">
        {{name+"   "+age}}
   </div>

   <script>
       var app= angular.module("myApp",[]);    //模块 
       app.controller("people",function($scope){  //控制器
           $scope.name=123;
           $scope.age=123;
       });
   </script>


  

AngularJS 表单实例


<span style="font-family:Microsoft Yahei, Helvetica Neue, Helvetica, Arial, sans-serif;">    <div ng-app="myApp" ng-controller="userController"</span><span style="font-family:courier new;"><span style="font-size: 13.6000003814697px;">  novalidate</span></span><span style="font-family:Microsoft Yahei, Helvetica Neue, Helvetica, Arial, sans-serif;">>
         <from>
             <input type="text"  ng-model="user.name" />   <!--绑定模型user.name-->
             <input type="text"  ng-model="user.age" />     <!--绑定模型user.age-->
             <button ng-click="retest()">retest</button>
         </from> <br/>
         {{user}} <br/>
         {{master}}
    </div>
    <script>
        var myApp = angular.module("myApp",[]);
        myApp.controller("userController",function($scope){
            var startValue ={name:"gg",age:12};   //设置初始值

            $scope.user=  angular.copy(startValue);         //页面显示的初始值
            $scope.master = angular.copy(startValue ) ;    //初始模型

            $scope.retest=function (){
                $scope.user= angular.copy($scope.master);  //变回你原来的样子
            }
        });

    </script></span>

Note HTML 属性 novalidate 用于禁用浏览器的默认验证。


感谢 
    w3c




















































































  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值