var objs = [{a: 1}, {a: 2}];
angular.forEach(objs, function(data, index, array) {
//data等价于array[index]
console.log(data.a + '=' + array[index].a);
});
var objs = {"a":1,"b":2}
angular.forEach(objs, function(data, index, array) {
//1 "a" {a: 1, b: 2}
console.log(data,index,array);
});
复制代码
angular 中自认可第一个 ng-app,经过 var app =angular.module("myApp",[]);便可获它的操做权;此时咱们须要手动的初始化第二个 ng-appjavascript
angular.bootstrap 来手动添加html
<div id="A1" ng-app="app1">
<input ng-model="name" type="text" placeholder="请输入姓名">
<p>个人姓名: {{name}}</p>
</div>
<div id="A2" ng-app="app2">
<input ng-model="age" type="number" placeholder="请输入年龄">
<p>个人年龄: {{age}}</p>
</div>
<script type="text/javascript"> var app1 = angular.module("app1", []); //自动加载 var app2 = angular.module("app2", []); //手动加载 angular.bootstrap(document.getElementById("A2"), ['app2']); // 手动加载2 </script>
复制代码
<div ng-app="myApp" ng-controller="myCtrl as ctrl">
<div id="addEle"></div>
</div>
<script> var app = angular.module("myApp", []); app.controller("myCtrl", function($scope, $compile) { var vm = this; vm.msg = 'hello'; // 建立编译函数 var compileFn = $compile('<div>{{ctrl.msg}}</div>'); // 传入scope,获得编译好的dom对象(已封装为jqlite对象) // 也能够用$scope.$new()建立继承的做用域 var $dom = compileFn($scope); //返回的$dom是一个jQLite(jQuery的子集)对象 console.log($dom); // 添加到文档中 var jqLite = angular.element(document.getElementById("addEle")); jqLite.append($dom); //$dom.remove(); //移除语句 }); </script>
复制代码
var jqEle = $("#myDiv"); //jquery写法
var jqLite = angular.element(document.getElementById("myDiv")); //jqlite写法
复制代码
经常使用的一些过滤器,也能够本身封装 和 补充 service 来自带参数。java
//自定义过滤器
app.filter('addOne', function() {
return function(i) {
var result = 0;
if(!isNaN(i)) {
result = 1 + parseInt(i);
}
return result;
}
});
//自定义过滤器带参数
app.service('addOneService', function() {
this.add = function(i) {
var result = 0;
if(!isNaN(i)) {
result = 1 + parseInt(i);
}
return result;
}
});
复制代码
$error.required 惟一值验证
$error.email 文本输入内置电子邮件验证。
$error.number 带有数量验证的文本输入。也能够有最小和最大值的附加属性。
$error.date 带有输入日期文本输入。
$error.url 带有输入验证的URL文本输入。
$error.minlength,参数范围需从input中ng-minlength设置
$error.maxlength,参数范围需从input中ng-maxlength设置
$error.pattern,正则表达式需从input中ng-pattern设置
$dirty 表单有填写记录
$pristine 表单没有填写记录
$valid 字段内容合法的,如formname.$valid
$invalid 字段内容是非法的
复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>demo-ng-switch</title>
<script type="text/javascript" src="../js/libs/angular/angular.js" ></script>
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<form>
选择一个选项:
<input type="radio" ng-model="myVar" value="dogs">Dogs
<input type="radio" ng-model="myVar" value="tuts">Tutorials
<input type="radio" ng-model="myVar" value="cars">Cars
</form>
<div ng-switch="myVar">
<div ng-switch-when="dogs">
<h1>Dogs</h1>
<p>Welcome to a world of dogs.</p>
</div>
<div ng-switch-when="tuts">
<h1>Tutorials</h1>
<p>Learn from examples.</p>
</div>
<div ng-switch-when="cars">
<h1>Cars</h1>
<p>Read about cars.</p>
</div>
</div>
</div>
<script> var app = angular.module("myApp", []); app.controller("myCtrl", function($scope) {}); </script>
</body>
</html>
复制代码