angularJS基础学习笔记
http://www.runoob.com/angularjs/angularjs-services.htmlangularjs教程
http://www.runoob.com/try/try.php?filename=try_ng_bind_stringsng-bind="a"作用={{a}}引用参数
ng-bind用在元素上如<spanng-bind="firstName"></span>
ng-init对数据进行初始
类似于 JavaScript 表达式,AngularJS 表达式可以包含字母,操作符,变量。 与 JavaScript 表达式不同,AngularJS 表达式可以写在 HTML 中。 与 JavaScript 表达式不同,AngularJS 表达式不支持条件判断,循环及异常。 与 JavaScript 表达式不同,AngularJS 表达式支持过滤器
ng-model 双向数据绑定 ng-repeat 指令会重复一个 HTML 元素 ng-options="x for x in names" 下选框 使用 ng-options 指令,选择的值是一个对象: <select ng-options=""> </select>等价于 <select> <option ng-repeat=""></option> </select> ng-repeat 有局限性,选择的值是一个字符串: <button ng-disabled="mySwitch">点我!</button> ng-show与ng-disabled ng-hide ng-click ng-include
--------------------------------------------------------------
自定义指令:返回一个模板
app.directive("runoobDirective", function() { return { restrict : "A", <!--默认是EA--> template : "<h1>自定义指令!</h1>" <!--template是该指令返回的内容--> }; });
E只限元素名使用
A只限属性使用
C只限类名使用
M只限注释使用
---------------------------------------
表单验证:
ng-model 指令可以为应用数据提供状态值(invalid, dirty, touched, error): {{myForm.myAddress.$valid}} (如果输入的值是合法的则为 true) {{myForm.myAddress.$dirty}} (如果值改变则为 true)。</p> {{myForm.myAddress.$touched}} (如果通过触屏点击则为 true) myAddress.$error.email email错误则为true myForm.email.$error.required,需要的字段为空则为true $dirty 表单有填写记录 $valid 字段内容合法的 $invalid 字段内容是非法的 $pristine 表单没有填写记录
----------------------------------------------------------
AngularJS过滤器
currency 格式化数字为货币格式。 filter 从数组项中选择一个子集。 lowercase 格式化字符串为小写。 orderBy 根据某个表达式排列数组。 uppercase 格式化字符串为大写。
---------------------------------------------------------------------------------------
服务:
$location$http$timeout访问在规定的毫秒数后执行指定函数。$interval访问在指定的周期(以毫秒计)来调用函数或计算表达式,每隔一段时间,调用一次该函数
-------------------------------------------------
创建自定义服务:服务里写具体的函数逻辑,注:自定义的服务引用时不需要加$
app.service('hexafy', function() { this.myFunc = function (x) { return x.toString(16); } }); app.controller('myCtrl', function($scope, hexafy) { $scope.hex = hexafy.myFunc(255); });
-----------------------------------
$odd$even索引的奇偶
跨域HTTP请求:header("Access-Control-Allow-Origin:*");
在我们的实例中,所有AngularJS库都在HTML文档的头部载入。
novalidate属性是在HTML5中新增的。禁用了使用浏览器的默认验证
----------------------------------------
AngularJS 全局 API angular.lowercase() 转换字符串为小写 angular.uppercase() 转换字符串为大写 angular.isString() 判断给定的对象是否为字符串,如果是返回 true。 angular.isNumber() 判断给定的对象是否为数字,如果是返回 true。
------------------------
http://www.open-open.com/lib/view/open1416878937309.html
angularjs多级菜单
------------------------------------------------------------------------------------------
$emit只能向parentcontroller传递event与data
$broadcast只能向childcontroller传递event与data
$on用于接收event与data
<div ng-controller="ParentCtrl"> <!--父级--> <div ng-controller="SelfCtrl"> <!--自己--> <a ng-click="click()">click me</a> <div ng-controller="ChildCtrl"></div> <!--子级--> </div> <div ng-controller="BroCtrl"></div> <!--平级--> </div>
事件属性目的
event.targetScope 发出或者传播原始事件的作用域 event.currentScope 目前正在处理的事件的作用域 event.name 事件名称 event.stopPropagation() 一个防止事件进一步传播(冒泡/捕获)的函数(这只适用于使用`$emit`发出的事件) event.preventDefault() 这个方法实际上不会做什么事,但是会设置`defaultPrevented`为true。直到事件监听器的实现者采取行动之前它才会检查`defaultPrevented`的值。 event.defaultPrevented 如果调用了`preventDefault`则为true