例子
- ng-app 指令告诉 AngularJS,元素是 AngularJS 应用程序 的”所有者”。
- ng-model 指令把输入域的值绑定到应用程序变量 name。
- ng-bind 指令把应用程序变量 name 绑定到某个段落的 innerHTML。
1 | <div ng-app=""> |
ng-app作用
1 | <div ng-app="myApp" ng-controller="myCtrl"> |
AngularJS 对象
1 | <div ng-app="" ng-init="person={firstName:'John',lastName:'Doe'}"> |
AngularJS 数组
1 | <div ng-app="" ng-init="points=[1,15,19,2,40]"> |
重复 HTML 元素
1 | <div ng-app="" ng-init="names=['Jani','Hege','Kai']"> |
创建自定义的指令
1 | <body ng-app="myApp"> |
你可以通过以下方式来调用指令:
- 元素名
<runoob-directive></runoob-directive>
- 属性
<div runoob-directive></div>
- 类名
- 注释
restrict 值可以是以下几种:
- E 作为元素名使用
- A 作为属性使用
- C 作为类名使用
- M 作为注释使用
restrict 默认值为 EA, 即可以通过元素名和属性名来调用指令。
ng-model 指令
1 | <div ng-app="myApp" ng-controller="myCtrl"> |
验证用户输入
1 | <form ng-app="" name="myForm"> |
应用状态
1 | <form ng-app="" name="myForm" ng-init="myText = 'test@runoob.co"> |
CSS 类
1 | <style> |
ng-model 指令根据表单域的状态添加/移除以下类:
- ng-valid: 验证通过
- ng-invalid: 验证失败
- ng-valid-[key]: 由$setValidity添加的所有验证通过的值
- ng-invalid-[key]: 由$setValidity添加的所有验证失败的值
- ng-pristine: 控件为初始状态
- ng-dirty: 控件输入值已变更
- ng-touched: 控件已失去焦点
- ng-untouched: 控件未失去焦点
- ng-pending: 任何为满足$asyncValidators的情况
AngularJS Scope(作用域)
1 | <div ng-app="myApp" ng-controller="myCtrl"> |
根作用域
1 | <div ng-app="myApp" ng-controller="myCtrl"> |
外部文件中的控制器
1 | <div ng-app="myApp" ng-controller="personCtrl"> |
AngularJS 过滤器
currency 格式化数字为货币格式。
filter 从数组项中选择一个子集。
lowercase 格式化字符串为小写。
orderBy 根据某个表达式排列数组。
uppercase 格式化字符串为大写。
1 | <div ng-app="myApp" ng-controller="personCtrl"> |
自定义过滤器
1 | var app = angular.module('myApp', []); |
AngularJS 服务
$location服务
返回当前页面的 URL 地址。
1
2
3
4 var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $location) {
$scope.myUrl = $location.absUrl();
});
$http 服务
向服务器发送Http请求
1
2
3
4
5
6 var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
$http.get("welcome.htm").then(function (response) {
$scope.myWelcome = response.data;
});
});
$timeout 服务
$timeout 服务对应了 JS window.setTimeout 函数。
1
2
3
4
5
6
7 var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $timeout) {
$scope.myHeader = "Hello World!";
$timeout(function () {
$scope.myHeader = "How are you today?";
}, 2000);
});
$interval 服务
$interval 服务对应了 JS window.setInterval 函数。
1
2
3
4
5
6 app.controller('myCtrl', function($scope, $interval) {
$scope.theTime = new Date().toLocaleTimeString();
$interval(function () {
$scope.theTime = new Date().toLocaleTimeString();
}, 1000);
});
创建自定义服务
1 | var app = angular.module('myApp', []); |
过滤器中,使用自定义服务
1 | <div ng-app="myApp"> |
$http
1 | // 简单的 GET 请求,可以改为 POST |
1 | <div ng-app="myApp" ng-controller="siteCtrl"> |
AngularJS Select(选择框)
1 | <div ng-app="myApp" ng-controller="myCtrl"> |
ng-options 与 ng-repeat区别
AngularJS 表格
AngularJS HTML DOM和事件
ng-disabled 指令
1 | <div ng-app="" ng-init="mySwitch=false"> |
ng-show 指令
1 | <div ng-app="" ng-init="hour=13"> |
ng-hide 指令
1 | <p ng-hide="true">我是不可见的。</p> |
ng-click 指令
1 | <button ng-click="count = count + 1">点我!</button> |
隐藏 HTML 元素
1 | <div ng-app="myApp" ng-controller="personCtrl"> |
AngularJS 表单
http://www.runoob.com/angularjs/angularjs-forms.html
数据绑定
<input type="text" ng-model="firstname">
Checkbox(复选框)
单选框
单选框使用同一个 ng-model
下拉菜单
HTML 表单
AngularJS 全局 API
全局 API 函数使用 angular 对象进行访问。
- angular.lowercase() 转换字符串为小写
- angular.uppercase() 转换字符串为大写
- angular.isString() 判断给定的对象是否为字符串,如果是返回 true。
- angular.isNumber() 判断给定的对象是否为数字,如果是返回 true。
switch case语句
1 | <p ng-switch = "x3"> |
AngularJS 包含
包含html页面
ng-include="'runoob.htm'"
跨域包含
AngularJS 动画
AngularJS 依赖注入
AngularJS 路由
###
ng-bind 和花括号的区别就是 启动加载的时候显示不同