2016年3月29日

[TOC]

2016年3月29日

angularjs

AngularJS 模块

  • 创建模块

你可以通过 AngularJS 的 angular.module 函数来创建模块:

<div ng-app="myApp">...</div>

<script>

var app = angular.module("myApp", []); 

</script>

myApp参数对应执行应用的 HTML 元素。 现在你可以在 AngularJS 应用中添加控制器、指令、过滤器等。

  • 添加控制器

你可以使用 ng-controller 指令来添加应用的控制器:

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

<script>

var app = angular.module("myApp", []);//应用模块的定义程序

app.controller("myCtrl", function($scope) {//控制器
    $scope.firstName = "John";
    $scope.lastName = "Doe";
});

</script>

AngularJS 表单

<div ng-app="myApp" ng-controller="formCtrl">
  <form novalidate>
    First Name:<br>
    <input type="text" ng-model="user.firstName"><br>
    Last Name:<br>
    <input type="text" ng-model="user.lastName">
    <br><br>
    <button ng-click="reset()">RESET</button>
  </form>
  <p>form = {{user}}</p>
  <p>master = {{master}}</p>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
    $scope.master = {firstName: "John", lastName: "Doe"};
    $scope.reset = function() {
        $scope.user = angular.copy($scope.master);
    };
    $scope.reset();
});
</script>

novalidate 属性是在 HTML5 中新增的。禁用了使用浏览器的默认验证。

  • ng-app 指令定义了 AngularJS 应用。

  • ng-controller 指令定义了应用控制器。

  • ng-model 指令绑定了两个 input 元素到模型的 user 对象。

  • formCtrl 函数设置了 master 对象的初始值,并定义了 reset() 方法。

  • reset() 方法设置了 user 对象等于 master 对象。

  • ng-click 指令调用了 reset() 方法,且在点击按钮时调用。

  • novalidate 属性在应用中不是必须的,但是你需要在 AngularJS表单中使用,用于重写标准的 HTML5 验证

AngularJS API

API

描述

angular.lowercase()

转换字符串为小写

angular.uppercase()

转换字符串为大写

angular.isString()

判断给定的对象是否为字符串,如果是返回 true。

angular.isNumber()

判断给定的对象是否为数字,如果是返回 true。

<div ng-app="myApp" ng-controller="myCtrl">
<p>{{ x1 }}</p>
<p>{{ x2 }}</p>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.x1 = "JOHN";
$scope.x2 = angular.lowercase($scope.x1);
});
</script>

AngularJS Bootstrap

AngularJS 指令

描述

< html ng-app

为 < html> 元素定义一个应用(未命名)

< body ng-controller

为 < body> 元素定义一个控制器

< tr ng-repeat

循环 users 对象数组,每个 user 对象放在 < tr> 元素中。

< button ng-click

当点击 < button> 元素时调用函数 editUser()

< h3 ng-show

如果 edit = true 显示 < h3> 元素

< h3 ng-hide

如果 edit = true 隐藏 < h3> 元素

< input ng-model

为应用程序绑定 < input> 元素

< button ng-disabled

如果发生错误或者 ncomplete = true 禁用 < button> 元素

AngularJS 包含

在 AngularJS 中,你可以在 HTML 中包含 HTML 文件。

使用 AngularJS, 你可以使用 ng-include 指令来包含 HTML 内容:

<body>

<div class="container">
  <div ng-include="'myUsers_List.htm'"></div>
  <div ng-include="'myUsers_Form.htm'"></div>
</div>

</body>

AngularJS 动画

AngularJS 提供了动画效果,可以配合 CSS 使用。 AngularJS 使用动画需要引入 angular-animate.min.js 库。

<body ng-app="myApp">

<h1>隐藏 DIV: <input type="checkbox" ng-model="myCheck"></h1>

<div ng-hide="myCheck"></div>

<script>
var app = angular.module('myApp', ['ngAnimate']);
</script>

ngAnimate 模型可以添加或移除 class 。 ngAnimate 模型并不能使 HTML 元素产生动画,但是 ngAnimate 会监测事件,类似隐藏显示 HTML 元素 ,如果事件发生 ngAnimate 就会使用预定义的 class 来设置 HTML 元素的动画。

AngularJS 添加/移除 class 的指令:

  • ng-show

  • ng-hide

  • ng-class

  • ng-view

  • ng-include

  • ng-repeat

  • ng-if

  • ng-switch

此外,在动画完成后,HTML 元素的类集合将被移除。例如: ng-hide 指令会添加一下类:

  • ng-animate

  • ng-hide-animate

  • ng-hide-add (如果元素将被隐藏)

  • ng-hide-remove (如果元素将显示)

  • ng-hide-add-active (如果元素将隐藏)

  • ng-hide-remove-active (如果元素将显示)

Last updated