码迷,mamicode.com
首页 > Web开发 > 详细

AngularJS常用功能

时间:2014-11-16 21:22:58      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   os   使用   sp   

AngularJS 常用功能

迭代输出之ng-repeat标签

ng-repeat让table ul ol等标签和js里的数组完美结合

1
2
3
4
5
<ul>
<li ng-repeat="person in persons">
{{person.name}} is {{person.age}} years old.
</li>
</ul>

你甚至可以指定输出的顺序:

1
<li ng-repeat="person in persons | orderBy:‘name‘">

动态绑定之ng-model标签
任何有用户输入,只要是有值的html标签,都可以动态绑定js中的变量,
而且是动态绑定。

1
<input type="text" ng-model=‘password‘>

对于绑定的变量,你可以使用{{}} 直接引用

1
<span>you input password is {{password}}</span>

如果你熟悉fiter,你可以很容易的按你的需要格式输出

1
<span>{{1288323623006 | date:‘yyyy-MM-dd HH:mm:ss Z‘}}</span>

绑定点击事件之ng-click事件
使用ng-click你可以很容易的为一个标签绑定点击事件。

1
<button ng-click="pressMe()"/>

当然前提是你要在$scope域中定义的自己的pressMe方法。

和传统的onclick方法不同,你甚至可以为ng-click方法传递一个对象,就像这样:

1
2
3
4
5
<ul>
<li ng-repeat="person in persons">
<button ng-click="printf(person)"/>
</li>
</ul>

当然还有ng-dblclick标签

分支语句之ng-switch on、ng-if/ng-show/ng-hide/ng-disabled标签
分支语句让你在界面上都可以写逻辑判断。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<ul>
<li ng-repeat="person in persons">
<span ng-switch on="person.sex">
<span ng-switch-when="1">you are a boy</span>
<span ng-switch-when="2">you are a girl</span>
</span>
<span ng-if="person.sex==1">you may be a father</span>
<span ng-show="person.sex==2">you may be a mother</span>
<span>
please input your baby‘s name:<input type="text" ng-disabled="!person.hasBaby"/>
</span>
<span>
</li>
</ul>

校验语法之ng-trim ng-minlength ng-maxlength required ng-pattern 等标签
表单中的输入框,你可以使用上面的标签来实现对用户输入的校验。
从字面意思上你已经知道了它们的意思。

1
2
3
<form name="yourForm">
<input type="text" name="inputText" required ng-trim="true" ng-model="userNum" ng-pattern="/^[0-9]*[1-9][0-9]*$/" ng-maxlength="6" maxlength="6"/>
</form>

你可以通过 $scope.yourForm.inputText.$error.required 来判断输入框是否为空
你可以通过 $scope.yourForm.inputText.$invalid 来判断输入的内容是否满足ng-pattern,ng-maxlength,maxlength
你通过$scope.userNum获得的输入内容是去掉前后空白的,因为ng-trim的存在。

下拉框之ng-options标签
ng-options是为下拉框专门打造的标签。

1
<select ng-model="yourSelected" ng-options="person.id as person.name in persons"></select>

下拉框中显示的是person.name,当你选中其中一个的时候,你可以通过yourSelected得到你选中的person.id.

控制css之ng-style标签
ng-style帮你轻松控制你的css属性

1
<span ng-style="myColor">your color</span>

你可以通过给myColor赋值的形式来改变你想要的效果,就像这样:

1
2
$scope.myColor={color:‘blue‘};
$scope.myColor={cursor: ‘pointer‘,color:‘blue‘};

filter:

<!doctype html>
<html ng-app>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="/js/staticsrc/jslib/angular.js"></script>
</head>
<body>
    <pre>过滤器功能点:
        currency    格式化数字为货币格式。
        filter        从数组项中选择一个子集。
        lowercase    格式化字符串为小写。
        orderBy        根据某个表达式排列数组。
        uppercase    格式化字符串为大写。
    </pre>
    <hr>
    
    <div ng-controller="personCtrl003">
        <p>大写-姓名为 {{ person.lastName | uppercase }}</p>
        <p>小写-姓名为 {{ person.lastName | lowercase }}</p>
    </div>
    <hr>
    
    <div  ng-init="quantity=1;price=5">
        数量:<input type="number" ng-model="quantity">
        价格:<input type="number" ng-model="price">
        <p>货币格式-总价 = {{ (quantity * price) | currency }}</p>
    </div>
    <hr>
    
    <!--按照年龄从小到大:  -->
    <div ng-controller="msgCtrl">
        <li ng-repeat="msg in msgList | orderBy : ‘age‘">
           {{(msg.name | uppercase) +‘, ‘+ msg.age}}
        </li>
        <hr>
           输入过滤(filter:name):<input type="text" ng-model="name">
          <li ng-repeat="msg in msgList | filter:name | orderBy:‘age‘">
            {{(msg.name | uppercase) +‘, ‘+ msg.age}}
          </li>
    </div>
    
    <script type="text/javascript">
        function personCtrl003($scope){
           $scope.person = {
                    firstName: "John",
                    lastName: "Doe",
                    fullName: function() {
                        var x;
                        x = $scope.person;
                        return x.firstName + " " + x.lastName;
                    }
                 };
        };
        
        function msgCtrl($scope){
            $scope.msgList=
                [
                 {"name":"张三1","age":15},
                 {"name":"张三3","age":19},
                 {"name":"张三2","age":28},
                 {"name":"张三6","age":12}
                 ];    
            
        }
    </script>
</body>
</html>

 

异步请求之$http对象。
AngularJS 提供了一个类似jquery的$.ajax的对象,用于异步请求。
在AngularJS中对异步操作是推崇至极的,所以$http的操作都是异步的不像jquery.ajax里还提供了async参数。

1
2
3
4
5
6
7
$http({method : ‘POST‘,params : { id:123}, data:{name:‘john‘,age:27}, url : "/mypath"})
.success(function(response, status, headers, config){
//do anything what you want;
})
.error(function(response, status, headers, config){
//do  anything what you want;
});

如果你是POST请求,params里的数据会帮你拼到url后面,data里的数据会放到请求体中。

 

AngularJS常用功能

标签:style   blog   http   io   color   ar   os   使用   sp   

原文地址:http://www.cnblogs.com/muzhongjiang/p/4101859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!