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 相关文章推荐
创建公共调用 jQuery Ajax 带返回值
Aug 01 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
Jan 15 Javascript
ExtJs纵坐标值重复问题的解决方法
Feb 27 Javascript
js使用正则实现ReplaceAll全部替换的方法
Jul 18 Javascript
Jquery实现图片预加载与延时加载的方法
Dec 22 Javascript
Angular2  NgModule 模块详解
Oct 19 Javascript
easyui combobox开启搜索自动完成功能的实例代码
Nov 08 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
Jan 08 Javascript
Javascript设计模式之装饰者模式详解篇
Jan 17 Javascript
jQuery读取XML文件的方法示例
Feb 03 Javascript
vue绑定的点击事件阻止冒泡的实例
Feb 08 Javascript
vue2.0模拟锚点的实例
Mar 14 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清除缓存的几种方法总结
2017/09/12 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
Python开发常用的一些开源Package分享
2015/02/14 Python
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
python机器学习之贝叶斯分类
2018/03/26 Python
python实现最长公共子序列
2018/05/22 Python
Django后台admin的使用详解
2019/07/08 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
Tensorflow累加的实现案例
2020/02/05 Python
Python 实现集合Set的示例
2020/12/21 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
物业管理毕业生个人的求职信
2013/11/30 职场文书
仓库文员岗位职责
2014/04/06 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
研究生导师评语
2014/12/31 职场文书
JavaScript的Set数据结构详解
2022/02/18 Javascript
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL