用AngularJS减少代码量吧

AngularJS是google主持开发的mvc/mvvm框架,嗯,不是anglebaby,它的入门很简单,你了解一下说不定就会喜欢上它。下面给个简单例子: 
[html]  view plain copy
  1. <!doctype html>  
  2. <html ng-app>  
  3. <head>  
  4.     <script src ="Scripts/angular.min.js"></script>  
  5.     <script>  
  6.         function InvoiceCntl($scope) {  
  7.             $scope.qty = 1;  
  8.             $scope.cost = 19.95;  
  9.         }  
  10.     </script>  
  11. </head>  
  12. <body>  
  13. <div ng-controller="InvoiceCntl">  
  14.     <b>Invoice:</b>  
  15.     <br>  
  16.     <br>  
  17.     <table>  
  18.         <tr><td>Quantity</td><td>Cost</td></tr>  
  19.         <tr>  
  20.             <td><input type="integer" min="0" ng-model="qty" required ></td>  
  21.             <td><input type="number" ng-model="cost" required ></td>  
  22.         </tr>  
  23.     </table>  
  24.     <hr>  
  25.     <b>Total:</b> {{qty * cost | currency}}  
  26. </div>  
  27. </body>  
  28. </html>  
     
      比较好理解,js里面定义了一个controller,两个属性:qty,cost,然后在div上绑定这个controller,指定两个model属性到输入框,这样就实现双向绑定了,完全抛弃掉操作DOM和事件监听,此外,currency是过滤器,把结果过滤成货币格式,运行效果如下图:

 
       看上去效果很棒吧,虽说入门简单不过进阶的学习曲线就有点陡了,特别是自定义指令部分,不过这也是它最强大的功能,但假如暂时不用,像以下代码这种简单的方式完全兼容jquery,同时实现双向绑定,大大减少代码量。 
[html]  view plain copy
  1. <!DOCTYPE html>  
  2. <html ng-app>  
  3. <head>  
  4.     <title></title>  
  5.     <script type="text/javascript" src="Scripts/jquery-1.7.2.js"></script>  
  6.     <script type="text/javascript" src="Scripts/angular.min.js"></script>  
  7.     <script type="text/javascript">  
  8.         function onTestClick(){  //jquery和angular交互  
  9.             var tx= $('#test').scope().testvalue;  
  10.             alert(tx);  
  11.             $('#test').scope().testvalue = '12345';  
  12.             $('#test').scope().$digest();  
  13.         }  
  14.         var TestCtrl = function($scope){ //angular方式,实现双向绑定  
  15.             $scope.testvalue = '123';  
  16.         }  
  17.         angular.bootstrap(document, document.documentElement);  
  18.     </script>  
  19. </head>  
  20. <body>  
  21. <div id="test" ng-controller="TestCtrl">  
  22.     <p>{{ testvalue }} </p>  
  23.     <input type="text" value="" id="a" ng-model="testvalue"/>  
  24.     <button onclick="onTestClick()">ClickMe</button>  
  25. </div>  
  26. </body>  
  27. </html>  

        关于angularjs,业余时间有兴趣的可以先了解一下,接触下网页的新思路,除了http://www.angularjs.cn外(没有上一页下一页,不爽),推荐几个网址:
入门:http://www.ituring.com.cn/article/13472
配套示例代码可以从这里获取:http://www.worlduc.com/blog2012.aspx?bid=17596841

        进阶可以看《angularjs开发指南》,但基本是官方翻译文档,不少东西不好理解,推荐一个网址,作者学习的经验总结,容易体会,也适合从入门就开始看:
http://zouyesheng.com/angular.html#toc1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值