angularJS基础学习笔记

CrazyDogWang 2016-04-12

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

相关推荐