zoukankan      html  css  js  c++  java
  • AngularJs

    1、AngularJs简介:

    AngularJs是一个JavaScript框架,是以JavaScript编写的库,他可以通过<script>标签添加到HTML页面,AngularJs通过指令扩展了HTML,且通过表达式绑定数据到HTML,Angularjs是以一个JavaScript文件形式发布的。

    <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>

    注意:我们建议把脚本放在<body>元素的底部,这会提高网页加载速度,因为HTML加载不受制于脚本加载。

    ng-app指令初始化一个AngularJs应用程序 <html ng-app>

    ng-model指令把元素值(比如输入域的值)绑定到应用程序

    ng-bind指令把应用程序数据绑定到HTML视图

    ng-init指令初始化AngularJs应用程序变量

    <div ng-app="" ng-init="firstName='John'">
    
    <p>姓名为 <span ng-bind="firstName"></span></p>
    
    </div>

    ng-repeat指令对于集合中(数组中)的每个项会克隆一次HTML元素

    2、作用域

    当你再Angularjs创建控制器时,可以讲$scope对象当做一个参数传递。

    <div ng-app="myApp" ng-controller="myCtrl">
    
    <h1>{{carname}}</h1>
    
    </div>
    
    <script>
    var app = angular.module('myApp', []);
    
    app.controller('myCtrl', function($scope) {
        $scope.carname = "Volvo";
    });
    </script>

    挡在控制器中添加$scope对象时,视图HTML可以获取了这些属性。

    scope是一个JavaScript对象,带有属性和方法,这些属性和方法可以在视图和控制器中使用。

    <div ng-app="myApp" ng-controller="myCtrl">
    
    <input ng-model="name">
    
    <h1>我的名字是 {{name}}</h1>
    
    </div>
    
    <script>
    var app = angular.module('myApp', []);
    
    app.controller('myCtrl', function($scope) {
        $scope.name = "John Dow";
    });
    </script>

    根作用域

    所有的应用都有一个$rootScope,它可以作用在ng-app指令包含的所有HTML元素中,$rootScope渴作用域整个应用中,是各个controller中scope的桥梁,用rootScope定义的值,可以在各个controller中使用。创建控制器时,将$rootScope作为参数传递,可在应用中使用:

    <div ng-app="myApp" ng-controller="myCtrl">
    
    <h1>{{lastname}} 家族成员:</h1>
    
    <ul>
        <li ng-repeat="x in names">{{x}} {{lastname}}</li>
    </ul>
    
    </div>
    
    <script>
    var app = angular.module('myApp', []);
    
    app.controller('myCtrl', function($scope, $rootScope) {
        $scope.names = ["Emil", "Tobias", "Linus"];
        $rootScope.lastname = "Refsnes";
    });
    </script>

    3、控制器

    ng-controller指令定义了应用程序控制器,空之骑士JavaScript对象,有标准的JavaScript对象的构造函数创建。

    <div ng-app="myApp" ng-controller="myCtrl">
    
    名: <input type="text" ng-model="firstName"><br>
    姓: <input type="text" ng-model="lastName"><br>
    <br>
    姓名: {{firstName + " " + lastName}}
    
    </div>
    
    <script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
        $scope.firstName = "John";
        $scope.lastName = "Doe";
    });
    </script>

    解析:

    ng-controller="myCtrl"是一个指令,用于定义一个控制器。myCtrl函数是一个JavaScript函数,使用$scope来调用控制器

    4、过滤器

    AngularJs可用于转换数据:

    currency:格式化数字为货币格式

    filter:从数组项中选择一个子集

    lowercase:格式化字符串为小写

    uppercase:格式化字符串为大写

    表达式中添加过滤器:

    过滤器可以通过一个管道字符(|)和一个过滤器添加到表达式中:

    <div ng-app="myApp" ng-controller="personCtrl">
    
    <p>姓名为 {{ lastName | uppercase }}</p>
    
    </div>

    过滤器可以通过一个管道字符(|)和一个过滤器添加到指令中:

    orderBy过滤器根据表达式排列数据

    <div ng-app="myApp" ng-controller="namesCtrl">
    
    <ul>
      <li ng-repeat="x in names | orderBy:'country'">
        {{ x.name + ', ' + x.country }}
      </li>
    </ul>
    
    <div>

    过滤输入

    输入过滤器后跟一个冒号和一个模型名称,filter过滤器从数组中选择一个子集:

    <div ng-app="myApp" ng-controller="namesCtrl">
    
    <p><input type="text" ng-model="test"></p>
    
    <ul>
      <li ng-repeat="x in names | filter:test | orderBy:'country'">
        {{ (x.name | uppercase) + ', ' + x.country }}
      </li>
    </ul>
    
    </div>

    5、XMLHttpRequest

    AngularJs $http是一个用于读取web服务器上的数据的服务

    $http.get(url)是用于读取服务器数据的函数

    <div ng-app="myApp" ng-controller="siteCtrl"> 
     
    <ul>
      <li ng-repeat="x in names">
        {{ x.Name + ', ' + x.Country }}
      </li>
    </ul>
     
    </div>
     
    <script>
    var app = angular.module('myApp', []);
    app.controller('siteCtrl', function($scope, $http) {
      $http.get("http://www.runoob.com/try/angularjs/data/sites.php")
      .success(function (response) {$scope.names = response.sites;});
    });
    </script>
  • 相关阅读:
    inet_ntoa解析
    日语常用计算机词汇
    Visual Studio 2012 : error LNK2026: module unsafe for SAFESEH image
    android异常总结四 :Unexpected text found in layout file: """
    android异常总结三 :R文件丢失
    android异常总结二 :This text field does not specify an inputType or a hint
    android异常总结一 :reslayoutOtherActivity.xml: Invalid file name: must contain only [a-z0-9_.]
    Win8下配置java环境
    CUDA实例练习(五):两数相加
    CUDA实例练习(四):矩阵转置
  • 原文地址:https://www.cnblogs.com/chhom/p/6088483.html
Copyright © 2011-2022 走看看