Angularjs基础知识及示例汇总


Posted in Javascript onJanuary 22, 2015

angularjs是google开发的一款高大上的前端mvc开发框架。

Angularjs官网:https://angularjs.org/ 官网有demo,访问可能需要FQ

Angularjs中国社区:http://www.angularjs.cn/ 适合初学者

引用文件:https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js

使用angular注意

引用angularjs库:https://github.com/litengdesign/angularjsTest/blob/master/angular-1.0.1.... 可以在本节示例的github上下载
需要在你使用的区域加上ng-app="appName",或者直接ng-app(全局)。
设置控制器 ng-controller="Ctrl"。
测试一下示例请注意以下几点

需要在head之前引入angularjs代码,作者使用的是angular-1.0.1.min.js,请注意版本区别。
所有小示例都是在以下区域运行,记得在作用区域加上 ng-app。
下面通过一些小的案例来说明angularjs默认的常见的指令和用法。

hello world程序(双数据绑定)

使用ng-model={{name}}来绑定数据

<label for="name">name:</label>

<input type="text" ng-model="name" id="name"/>

<hr>

hello:{{name || 'liteng'}}

 http://2.liteng.sinaapp.com/angularjsTest/helloangularjs.html

事件绑定使用小案例

<div>

  单价:<input type="number" min=0 ng-model="price" ng-init="price=299">

  数量: <input type="number" min=0 ng-model="quantity" ng-init="quantity=1">   

  <br>

  总价:{{(price) * (quantity)}}

  <dt>

    <dl>注:</dl>

    <dd>涉及html5的input:<a href="http://www.w3school.com.cn/html5/att_input_type.asp">http://www.w3school.com.cn/html5/att_input_type.asp</a></dd>

    <dd>ng-init:设定初始值</dd>

  </dt>

</div>

 http://2.liteng.sinaapp.com/angularjsTest/event-bind.html

ng-init:可默认指定属性值

<p ng-init="value='hello world'">{{value}}</p>

 http://2.liteng.sinaapp.com/angularjsTest/ng-init.html

ng-repeat:用于迭代数据类似于js中的 i for info

<div ng-init="friends=[{name:'Jhon',age:25},{name:'Mary',age:28}]"></div>

  <p>我有{{friends.length}} 朋友.他们是</p>

  <ul>

    <li ng-repeat="friend in friends">

      [{{$index+1}}]:{{friend.name}}年龄为:{{friend.age}}

    </li>

   </ul>

 http://2.liteng.sinaapp.com/angularjsTest/ng-repeat.html

ng-click:dom的点击事件

<div ng-controller="ctrl">

  <button ng-dblclick='showMsg()'>{{a}}</button>

</div>

<script> 

    function ctrl($scope){

      $scope.a='hello';

      $scope.showMsg=function(){

        $scope.a='world';

      }

     }

  </script>

 http://2.liteng.sinaapp.com/angularjsTest/ng-click.html

ng-show:设置元素显示

注:ng-show="!xx":在属性值前面加!表示确定显示,如果不加!表示不确定则不显示

<div ng-show="!show">

  ng-show="!show"

</div>

<div ng-show="show">

  ng-show="show"

</div>

 http://2.liteng.sinaapp.com/angularjsTest/ng-show.html

ng-hide:设置元素隐藏

<div ng-hide="aaa">

  ng-hide="aaa"

</div>

<div ng-hide="!aaa">

  ng-show="!aaa"

</div>

 http://2.liteng.sinaapp.com/angularjsTest/ng-hide.html

运用ng-show制作toggle效果

<h2>toggle</h2>

  <a href ng-click="showLog=!showLog">显示logo</a>

  <div ng-show="showLog">

    <img ng-src="http://liteng.org/sites/default/files/logo.png" alt="">

  </div>

 http://2.liteng.sinaapp.com/angularjsTest/ng-toggle.html

ng-style:和默认style类似

这里请注意书写格式:字符串需要用引号包含

<div ng-style="{width:100+'px',height:200+'px',backgroundColor:'red'}">

  box

</div>

 http://2.liteng.sinaapp.com/angularjsTest/ng-style.html

filter:过滤字段

<div>{{9999|number}}</div> <!--9,999-->

<div>{{9999+1 |number:2}}</div><!--10,000.00-->

<div>{{9*9|currency}}</div><!--$81.00-->

<div>{{'hello world' | uppercase}}</div><!--HELLO WORLD-->

 http://2.liteng.sinaapp.com/angularjsTest/filter.html

ng-template:可以加载模板

<div ng-include="'tpl.html'"></div>

 tpl.html

<h1>hello</h1>

 http://2.liteng.sinaapp.com/angularjsTest/show-tpl.html

$http:一个类似ajax的方法很管用

<div class="container" ng-controller="TestCtrl">

  <h2>HTTP请求-方法1</h2>

    <ul>

        <li ng-repeat="x in names">

        {{x.Name}}+{{x.Country}}

        </li>

    </ul>

</div>

<h2>方法2</h2>

  <div ng-controller="TestCtrl2">

     <ul>

        <li ng-repeat="y in info">

            {{y.aid}}+{{y.title}}

        </li>

     </ul>

</div>

<script>

//方法1

      var TestCtrl=function($scope,$http){

         var p=$http({

            method:'GET',

            url:'json/date.json'

         });

         p.success(function(response,status,headers,config){

            $scope.names=response;

         });

         p.error(function(status){

            console.log(status);

         });

      }

      //方法2

      function TestCtrl2($scope,$http){

        $http.get('json/yiqi_article.json').success(function(response){

             $scope.info=response;

        });

      }

</script>

 http://2.liteng.sinaapp.com/angularjsTest/ajax.html

以上所有的code:https://github.com/litengdesign/angularjsTest

实现的demo:http://2.liteng.sinaapp.com/angularjsTest/index.html

至于angularjs的路由(router)和指令(directive)下次本人将单独拿出来讲。

Javascript 相关文章推荐
15款jQuery分布引导插件分享
Feb 04 Javascript
学习JavaScript设计模式之策略模式
Jan 12 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
Jun 30 Javascript
浅析JavaScript动画模拟拖拽原理
Dec 09 Javascript
React Native预设占位placeholder的使用
Sep 28 Javascript
JavaScript变量声明var,let.const及区别浅析
Apr 23 Javascript
在HTML文档中嵌入JavaScript的四种方法
May 07 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 jQuery
vuejs前后端数据交互之从后端请求数据的实例
Aug 11 Javascript
如何使用 vue + d3 画一棵树
Dec 03 Javascript
详解node登录接口之密码错误限制次数(含代码)
Oct 25 Javascript
antd table按表格里的日期去排序操作
Nov 17 Javascript
jquery使用正则表达式验证email地址的方法
Jan 22 #Javascript
使用jquery操作session方法分享
Jan 22 #Javascript
jQuery实现“扫码阅读”功能
Jan 21 #Javascript
JavaScript中document.forms[0]与getElementByName区别
Jan 21 #Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
Jan 21 #Javascript
JavaScript的内存释放问题详解
Jan 21 #Javascript
script标签属性用type还是language
Jan 21 #Javascript
You might like
php框架Phpbean说明
2008/01/10 PHP
php session劫持和防范的方法
2013/11/12 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
字符串的replace方法应用浅析
2011/12/06 Javascript
Jquery焦点与失去焦点示例应用
2014/06/10 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
浅谈jquery中delegate()与live()
2015/06/22 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
python 实现多线程下载视频的代码
2019/11/15 Python
SQL Server数据库笔试题和答案
2016/02/04 面试题
一年级班主任寄语
2014/01/19 职场文书
中学家长会邀请函
2014/02/03 职场文书
端午节活动总结报告
2015/02/11 职场文书
新员工试用期自我评价
2015/03/10 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
休假证明书
2015/06/24 职场文书