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 相关文章推荐
使用ExtJS技术实现的拖动树结点
Aug 05 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
Jun 14 Javascript
杨氏矩阵查找的JS代码
Mar 21 Javascript
JS去除字符串两端空格的简单实例
Dec 27 Javascript
javascript在子页面中函数无法调试问题解决方法
Jan 17 Javascript
js关于精确计算和数值格式化以及直接引js文件
Jan 28 Javascript
JavaScript中双叹号(!!)作用示例介绍
Apr 10 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
Feb 27 Javascript
JavaScript与ActionScript3两者的同性与差异性
Sep 22 Javascript
深入理解ES6 Promise 扩展always方法
Sep 26 Javascript
基于JSONP原理解析(推荐)
Dec 04 Javascript
ReactNative实现Toast的示例
Dec 31 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 301转向实现代码
2008/09/18 PHP
php中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
php使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
随机显示经典句子或诗歌的javascript脚本
2007/08/04 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
js闭包的用途详解
2014/11/09 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
Python实现SVN的目录周期性备份实例
2015/07/17 Python
Python中模块string.py详解
2017/03/12 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
python中解析json格式文件的方法示例
2017/05/03 Python
Python操作mongodb数据库进行模糊查询操作示例
2018/06/09 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
Old Navy加拿大官网:美式休闲服饰品牌
2017/09/26 全球购物
Perfume’s Club意大利官网:欧洲美妆电商
2019/05/03 全球购物
诉讼代理人授权委托书
2014/04/08 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python