angularjs 知识点整理

一、模块定义

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

二、作用域

> 作用域【M】是视图【V】和控制器【C】之间的胶水。

> 继承:子作用域可以继承父作用域的属性和方法

   隔离:平级作用域之间相互隔离

   屏蔽:如果子作用域定义了与父作用域相同的属性或者方法,则会屏蔽父作用域的属性或者方法

> 生命周期

   创建->链接($watch)->更新(数据渲染到视图)->销毁

三、控制器和表达式

> 控制器在angular中的作用是 增强视图

> 用来给作用域对象设置初始状态,并添加自定义行为

> 尽可能精简控制器是很好的做法。作为angular开发者,使用依赖注入服务可以实现这个目的

> 所有的表达式都在其所属的作用域内执行,并有访问本地$scope的权限

> 可以接受过滤器或过滤器链

{{ xxx | number:2 | ***** }}

> $parse 【解析服务】

> $interpolate【插值字符串】

四、过滤器

> 在模板HTML中使用  

{{ name | uppercase }}

> JS中

$scope.name = $filter("lowercase")("Apr");

> 内置过滤器

    currency    date    filter    json    LimitTo    lowercase    number    orderBy    uppercase

五、路由

参考 https://www.cnblogs.com/littlemonk/p/5500801.html

参考https://blog.csdn.net/zcl_love_wx/article/details/52034193


> SPA 单页WEB应用【single page web application】

***单视图嵌套https://ui-router.github.io/ng1/tutorial/helloworld

    index.html

<html>
  <head>
    <script src="lib/angular.js"></script>
    <script src="lib/angular-ui-router.js"></script>
    <script src="helloworld.js"></script>

    <style>.active { color: red; font-weight: bold; }</style>
  </head>

  <body ng-app="helloworld">
    <a ui-sref="hello" ui-sref-active="active">Hello</a>
    <a ui-sref="about" ui-sref-active="active">About</a>

    <ui-view></ui-view>
  </body>
</html>

    helloworld.js

var myApp = angular.module('helloworld', ['ui.router']);

myApp.config(function($stateProvider) {
  var helloState = {
    name: 'hello',
    url: '/hello',
    template: '<h3>hello world!</h3>'
  }

  var aboutState = {
    name: 'about',
    url: '/about',
    template: '<h3>Its the UI-Router hello world app!</h3>'
  }

  $stateProvider.state(helloState);
  $stateProvider.state(aboutState);
});

***多视图

> 属性

controller    resolve    params    url    views    abstract    onEnter    inExit    data

> 路有事件

六、服务

> 服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通信,并且能保证数据的一致性。

> 创建

    factory()

    service() 可以注册一个支持构造函数的方法

    constant()    provider() 可以注入到.config()配置函数中

    provider() 提供一个具有$get()方法的对象

    value()

七、promise

参考 https://segmentfault.com/a/1190000007032448


> promise 对象用于异步操作,它表示一个尚未完成且预计未来完成的异步操作

> 有以下三种状态

    pending:初始值

    fulfilled:操作成功

    rejected:操作失败

    缺点:promise一旦创建就会立即执行,无法取消

> resolve 异步操作成功时调用,并将异步操作的结果,作为参数传递出去

   reject 异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去

八、指令

> 扩展具有定义功能的HTML元素

> 内置指令

    ->ng-href    ng-src (类布尔属性,界面友好性提高)

        ng-disabled    ng-checked    ng-readonly    ng-selected    (布尔属性)

        ng-class    ng-style

    ->会生成作用域的指令(以父作用域为原型生成子作用域)

        ng-app    (创建$rootScope)

        ng-controller    (会以$rootScope或另一个ng-controller的作用域$scope为原型创建新的子作用域)   

        ng-include    (会自动创建一个子作用域)   

1、定义和用法
ng-include 指令用于包含外部的 HTML 文件。
包含的内容将作为指定元素的子节点。
ng-include 属性的值可以是一个表达式,返回一个文件名。
默认情况下,包含的文件需要包含在同一个域名下。
2、语法
<element ng-include="filename" οnlοad="expression" autoscroll="expression" ></element>
ng-include 指令作为元素使用:
<ng-include src="filename" οnlοad="expression" autoscroll="expression" ></ng-include>
所有的 HTML 元素都支持该指令。
3、参数值
值	        描述
filename	文件名,可以使用表达式来返回文件名。
onload	        可选, 文件载入后执行的表达式。
autoscroll	可选,包含的部分是否在指定视图上可滚动。

        ng-switch    (类似于 switch case 功能) 

            示例:http://jsbin.com/AVihUdi/2/edit?html,js,output

        ng-view    ng-if

        ng-repeat    (用来遍历一个集合或为集合中的每个元素生成一个模板实例。集合中的每个元素都会被赋予自己的模板和作用域。)        $index[0-(length-1)]   $first    $middle    $last    $even    $odd

$even是$index为偶数是为真
$odd是$index为奇数时为真
<!-- 为奇偶行添加样式 -->
<p ng-repeat="preson in people" ng-class="{even:!$even, odd:!$odd}">
{{preson.name}}
</p>

        ng-init

        {{ }}    避免闪烁,可以使用 ng-bind / ng-cloak

        ng-bind-template    可以绑定多个表达式

ng-bind-template="{{name}} {{age}}"
ng-bind-template="{{name}} : {{age}}"
ng-bind-template="{{name}} + {{age}}"

        ng-bind-html

        ng-model

使用 对象 进行双向数据绑定
<input type="text" ng-model="modelName.someProperty" />

        ng-model-options

        ng-show / ng-hide

        ng-change    这个指令会在表单输入发生变化时计算给定表达式的值。因为要处理表单输入,这个指令要和 ng-modal 联合起来使用。

        ng-form

        ng-click

        ng-select

                

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值