zoukankan      html  css  js  c++  java
  • AngularJs学习

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <style>
            input.ng-invalid { background-color: lightblue; }
        </style>
    </head>
    
    <body ng-app="myApp">
        <div>
            <!--ng-app指令告诉Angular应该管理页面中的哪一块,在整个页面中只能有一个
            ng-model 指令把元素值(比如输入域的值)绑定到应用程序。
            ng-bind指令把应用程序数据绑定到 HTML 视图。-->
            <p>名字:</p><input type="text" ng-model="name" />
            <p ng-bind="name"></p><!--当angular未加载完时不会显示-->
            <p>{{name}}</p><!--当angular未加载完时会显示-->
            <p>p>{{1+1}}</</p> <!--在{{}}里面计算-->
            <!--ng-init指令初始化AngularJs应用程序变量,多个变量以“;”隔开-->
            <p ng-init="firstName='Jack';lastName='han'">
                姓名:{{firstName}} {{lastName}}
            </p>
    
            <!--HTML5 允许扩展的(自制的)属性,以 data- 开头。
            AngularJS 属性以 ng- 开头,但是您可以使用 data-ng- 来让网页对 HTML5 有效。-->
            <p data-ng-init="firstName='Jack'">
                姓名:<span data-ng-bind="firstName"></span>
            </p>
        </div>
    
        <div>
            <!--AngularJS 模块(Module) 定义了 AngularJS 应用。
            AngularJS 控制器(Controller) 用于控制 AngularJS 应用。
            ng-app指令定义了应用, ng-controller 定义了控制器。-->
            <div ng-controller="myController">
                名: <input type="text" ng-model="firstName"><br>
                姓: <input type="text" ng-model="lastName"><br>
                <br>
                姓名: {{firstName + " " + lastName}}
            </div>
    
            <!--AngularJS 对象就像 JavaScript 对象-->
            <div ng-init="person={firstName:'Jack',lastName:'han'}">
                <p>姓名:{{person.firstName}} {{person.lastName}}</p>
            </div>
        </div>
    
        <div>
            <!--ng-repeat 指令会重复一个 HTML 元素:-->
            <div ng-init="names=['Jack','Peter','Lily']">
                <ul>
                    <li ng-repeat="name in names">
                        {{name}}
                    </li>
                </ul>
            </div>
            <!--ng-repeat 指令用在一个对象数组上:-->
            <div ng-init="persons=[{name:'Jack',age:18},{name:'Peter',age:19},{name:'Lily',age:15}]">
                <ul>
                    <li ng-repeat="person in persons">
                        {{person.name+","+person.age}}
                    </li>
                </ul>
            </div>
    
    
            <!-- 指令: my-directive --> <!--创建自定义的指令-->
            <!--你可以使用 .directive 函数来添加自定义的指令。
            要调用自定义指令,HTMl 元素上需要添加自定义指令名。
            使用驼峰法来命名一个指令, myDirective, 但在使用它时需要以 - 分割, my-directive:
    
            你可以通过以下方式来调用指令:-->
            <!--元素名-->
            <my-directive></my-directive>
            <!--属性-->
            <div my-directive></div> <!--推荐使用-->
            <!--类名-->
            <div class="my-directive"></div>
            <!--注意: 你必须设置 restrict 的值为 "C" 才能通过类名来调用指令。
            注释
            注意: 我们需要在该实例添加 replace 属性, 否则评论是不可见的。
            注意: 你必须设置 restrict 的值为 "M" 才能通过注释来调用指令。-->
        </div>
        <div>
            <!--验证用户输入-->
            <form name="myForm" ng-init="myText='aa@qq.com'">
                Email:
                <input type="email" name="myEmail" ng-model="text" />
                <span ng-show="myForm.myEmail.$error.email">不是一个合法的邮箱地址</span>
                <!--应用状态-->
                <!--ng-model 指令可以为应用数据提供状态值(invalid, dirty, touched, error):-->
                <input type="email" name="myEmail1" ng-model="myText" required />
                <h1>状态</h1>
                {{myForm.myEmail1.$valid}}(如果输入的值是合法的则为 true)
                {{myForm.myEmail1.$dirty}}(如果值改变则为 true)。
                {{myForm.myEmail1.$touched}}(如果通过触屏点击则为 true)
    
                <!--ng-model 指令基于它们的状态为 HTML 元素提供了 CSS样式:
                input.ng-invalid {
                background-color: lightblue;
                }
    
                ng-model 指令根据表单域的状态添加/移除以下 CSS样式:
                ng-empty
                ng-not-empty
                ng-touched
                ng-untouched
                ng-valid
                ng-invalid
                ng-dirty
                ng-pending
                ng-pristine
    
                根作用域
                所有的应用都有一个 $rootScope,它可以作用在 ng-app 指令包含的所有 HTML 元素中。
                $rootScope 可作用于整个应用中。是各个 controller 中 scope 的桥梁。用 rootscope 定义的值,可以在各个 controller 中使用。-->
                <span>{{rootName}}</span>
            </form>
        </div>
    
        <div>
            AngularJS 过滤器
            AngularJS 过滤器可用于转换数据:
            过滤器 描述
            currency 格式化数字为货币格式。
            filter 从数组项中选择一个子集。
            lowercase 格式化字符串为小写。
            orderBy 根据某个表达式排列数组。orderBy:'age' 升序 orderBy:'-age' 降序
            uppercase 格式化字符串为大写。
            <div ng-init="lastName='abcd';firstName='ABCD';price=9.99;persons=[{name:'Jack',age:18},{name:'Peter',age:19},{name:'Lily',age:15}];">
                {{lastName | uppercase}}
                {{firstName | lowercase}}
                {{price | currency}}
                <ul>
                    <li ng-repeat="person in persons | orderBy:'-age'">
                        {{person.name+","+person.age}}
                    </li>
    
    
                </ul>
                <p>
                    <input type="text" ng-model="search" />
                </p>
                <ul>
                    <li ng-repeat="person in persons | filter:search | orderBy:'-age'">
                        {{person.name+","+person.age}}
                    </li>
                </ul>
            </div>
        </div>
    
        <div>
            AngularJS $http
            AngularJS $http 是一个用于读取web服务器上数据的服务。
            $http.get(url) 是用于读取服务器数据的函数。
            <div ng-controller="myHttpController">
                <ul>
                    <li ng-repeat="person in persons">
                        序号:{{$index+1}} {{person.name+","+person.sex}}
                        <span ng-if="$odd">偶数</span>
                        <span ng-if="$even">奇数</span>
                        
                    </li>
                </ul>
            </div>
        </div>
    <div>
        <div ng-init="enable=true;">
            <input type="button" value="点击" ng-disabled="!enable"/>
            <input type="checkbox" ng-model="enable"/>启用
        </div>
        <div>
            <p ng-show="true">我是可见的。</p>
            <p ng-show="false">我是不可见的。</p>
            <p ng-hide="true">我是不可见的。</p>
            <p ng-hide="false">我是可见的。</p>
        </div>
    </div>
    
    <div>
        <div ng-controller="myFormController">
            <form novalidate="" name="myValidForm">
                FirstName:<input type="text" ng-model="user.firstName" />
              
                <br/>
                LastName:<input type="text" ng-model="user.lastName"/><br/>
                Email:<input type="email" ng-model="user.email"/><br/>
                <input type="button" ng-click="submit()" value="提交"/>
            </form>
            <p>form = {{user}}</p>
            <p>master ={{master}}</p>
        </div>
    </div>
    
    
    
    <script src="../Scripts/angular.min.js"></script>
        <script>
            var app = angular.module("myApp", []);
            app.controller("myController", function ($scope, $rootScope) {
                $scope.firstName = "peter";
                $scope.lastName = "han";
                $rootScope.rootName = "rootName";
            });
            app.directive("myDirective", function () {
                return {
                    restrict: "AECM", //你可以限制你的指令只能通过特定的方式来调用。
                    template: "<h1>我自定义的指令</h1>",
                    replace: true
                };
            });
           
            //通过添加 restrict 属性,并设置只值为 "A", 来设置指令只能通过属性的方式来调用:
            //restrict 值可以是以下几种:
            //E 只限元素名使用
            //A 只限属性使用
            //C 只限类名使用
            //M 只限注释使用
            //restrict 默认值为 EA, 即可以通过元素名和属性名来调用指令。
    
            app.controller("myHttpController", function($scope, $http) {
                $http.jsonp("http://w3.open.yunshouyi.net/test/index?callback=JSON_CALLBACK").success(function(data) {
                    $scope.persons = data.result; //{result:[{"name":"chopper","sex":"man"},{"name":"jack","sex":"man"}]}
                    console.log($scope.persons);
                });
            });
    
            app.controller("myFormController", function($scope) {
                $scope.master = { firstName: "John", lastName: "Doe",email:"aa@qq.com" };
                $scope.submit = function() {
                    $scope.user = angular.copy($scope.master);
                };
                $scope.submit();
            });
        </script>
    </body>
    </html>
  • 相关阅读:
    ThinkPHP5+Bootstrap的极速后台开发框架。
    window 下要运行php,需要编辑php环境变量
    Mui 底部导航切换
    chrome 监听touch类事件报错:无法被动侦听事件preventDefault
    HBuilder开发MUI web app溢出页面上下无法滚动问题
    D建立app项目(mui)
    宝塔linux面板,phpmyadmin进不去的处理方法
    mysql密码重置
    mysql5.6安装以及密码重置
    linux安装软件命令
  • 原文地址:https://www.cnblogs.com/yxlblogs/p/5152002.html
Copyright © 2011-2022 走看看