多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > AngularJS權威教程 筆記(AngularJS是一個很有意思的庫,基于函數形參的依賴注入?酷!還有奇怪的$scope和指令)

AngularJS權威教程 筆記(AngularJS是一個很有意思的庫,基于函數形參的依賴注入?酷!還有奇怪的$scope和指令)

來源:程序員人生   發布時間:2014-11-03 09:22:34 閱讀次數:9167次

AngularJS權威教程

跳轉至: 導航、 搜索

目錄

  • 1 初識AngularJS
  • 2 數據綁定和第1個利用
  • 3 模塊
  • 4 作用域
  • 5 控制器
  • 6 表達式
  • 7 過濾器
  • 8 指令簡介
  • 9 內置指令
  • 10 指令詳解
  • 11 模塊加載
  • 12 多重視圖和路由
  • 13 依賴注入
  • 14 服務
  • 15 XHR和http://www.vxbq.cn/server/通訊
  • 16 XHR實踐
  • 17 promise
  • 18 http://www.vxbq.cn/server/通訊
  • 19 測試
  • 20 事件
  • 21 架構
  • 22 AngularJS動畫
  • 23 digest循環和$apply
  • 24 揭秘AngularJS
  • 25 AngularJS精華擴大
  • 26 移動利用
  • 27 本地化
  • 28 緩存
  • 29 安全性?
  • 30 AngularJS和IE閱讀器
  • 31 構建AngularJS Chrome利用
  • 32 優化AngularJS利用
  • 33 調試AngularJS
  • 34 下1步
  • 35 總結

初識AngularJS

數據綁定和第1個利用

  1. 實時模板:<html ng-app> ... <input ng-model="name" .../> --> <h1>Hello, {{ name }}</h1>
    1. 臟檢查?$digest()循環
  2. ng-controller="MyController"(控制器管轄視圖)

模塊

  1. angular.module('myApp', ['deps']);

作用域

  1. ng-app關聯到$rootScope,而ng-controller創建1個新的$scope
  2. $injector

控制器

  1. app.controller("MyController", function($scope){ $scope.xxx=...; });

表達式

  1. app.controller("MyController", function($scope, $parse){
    1. $scope.$watch('expr', function(newVal, oldVal, scope){
      1. var parseFunc = $parse(newVal);
      2. $scope.parsedValue = parseFunc(scope); //靠
  2. app.controller("MyController", function($scope, $interpolate){
    1. //這里的第2個參數究竟是怎樣回事?注入服務?它不應當與前面的$parse1樣屬于同1個形參嗎?
  3. 自定義不同于{{}}的符號(略)

過濾器

  1. {{ name | uppercase }}
  2. 在失去焦點時驗證:app.directive('ngFocus', ... --> <input ... ng-focus/>
  3. 1.3+ ngMessages(去除復雜的ng-show指令?)

指令簡介

  1. 指令就是自定義html元素/屬性/類/注釋?
    1. app.directive(myDirective', function(){ return { restrict: 'EACM', replace: true, template: '...'}; });
    2. 創建新的作用域?
      1. scope: { someProperty: '@someAttr' }

內置指令

  1. 基礎ng屬性指令:
    1. ng-href
    2. ng-src
    3. ng-disabled
    4. ng-checked
    5. ng-readonly
    6. ng-selected
    7. ng-class
    8. ng-style
  2. 指令中使用子作用域:ng-app和ng-controller
    1. ng-include
    2. ng-switch
    3. ng-repeat
    4. ng-view
    5. ng-if
    6. ng-init
    7. ng-bind
    8. ng-cloak
    9. ng-bind-template
    10. ng-model
    11. ng-show/hide
    12. ng-change
    13. ng-form(在1個表單里嵌套另外一個?)
    14. ng-click
    15. ng-select
    16. ng-submit
    17. ng-attr-(suffix)

指令詳解

  1. 定義
  2. 作用域
    1. 隔離作用域?
  3. 綁定策略
    1. 本地作用域屬性:@attr =attr &attr
    2. translude?
  4. 生命周期*
    1. compile(對模板DOM進行轉換)
    2. link(將作用域與DOM鏈接)
      1. 自定義驗證(發送Ajax要求)
  5. ngModel
  6. 自定義驗證

模塊加載

  1. app.config/run( ...

多重視圖和路由

  1. 路由模式
    1. 標簽:/#!/...
    2. HTML5:通過$location服務使用History API
  2. 路由事件
    1. $routeChangeStart
    2. $routeChangeSuccess
    3. $routeChangeError
    4. $routeUpdate
  3. 更多
    1. $window.location.href = "/reload/page";

依賴注入

  1. p109 通過annotate,在實例化時將傳入函數的參數列表提取出來(怎樣做到的?)
    1. > injector.annotate( function($q, greeter){} )
    2. ["$q", "greeter"]
  2. injector.invoke( function($http, greeter){} ) //參數順序就沒成心義了(靠?。?/li>
  3. 顯示注入聲明
    1. aControllerFactory.$inject = ['$scope', 'greeter'];
  4. 行內注入聲明
    1. app.controller('MyController', ['$scope', 'greeter', function($scope, greeter){...}];
  5. ngMin:預緊縮并設置依賴注入?

服務

  1. app.factory('githubService', function($http){ ... });
    1. $http返回的是promise對象...
  2. app.controller('ServiceController', function($scope, githubService){...}); //靠,ng的依賴注入真的很精巧~
  3. 5種方法創建服務:factory service constant value provider

XHR和http://www.vxbq.cn/server/通訊

  1. $http
  2. 攔截器
    1. ... $httpProvider.interceptors.push('MyInterceptor');
  3. $resource:訪問REST
  4. Restangular庫

XHR實踐

  1. JSONP
  2. CORS
    1. http://www.vxbq.cn/server/端支持:Access-Control-Allow-Origin

promise

  1. var deferred = $q.defer();
    1. resolve
    2. reject
    3. notify
  2. then(successFun, errorFun, notifyFun)
    1. .catch(function(reason){...})

http://www.vxbq.cn/server/通訊

測試

  1. p270 Karma與延續集成服務(JenkinsCI, TravisCI)協作得很好
  2. Protractor

事件

架構

AngularJS動畫

  1. $animate服務:ng-[EVENT]-active CSS類
    1. ngRepeat
    2. ngView
    3. ngInclude
    4. ngSwitch
    5. ngIf
    6. ngClass
    7. ngShow/Hide
  2. CSS3過渡與@keyframes動畫
  3. 第3方庫:Animate.css, TweenMax/Lite

digest循環和$apply

  1. $digest循環
    1. $watch列表
      1. 臟值檢查:只要有任何值產生變化,利用將退回到$watch循環中,直到檢測不到更新
      2. $watchCollection
    2. $evalAsync列表($$asyncQueue)
  2. $apply

揭秘AngularJS

AngularJS精華擴大

移動利用

  1. ngTouch
    1. 移動裝備首先會檢測到1個tap,然后等待300ms去檢測其他事件(doubletap),以后才會觸發click
    2. ng-click:快速點擊?
    3. ngSwipeLeft/Right
    4. $swipe服務
  2. angular-gestures和多點觸控(基于Hammer.js)
  3. Cordova中的原生利用(有點像Rails)
    1. 使用Yeoman構建

本地化

  1. angular-translate(略)
    1. 運行時切換語言*
  2. angular-gettext:.pot => .js?

緩存

  1. $cacheFactory

安全性?

  1. 嚴格的上下文轉義:$sce服務

AngularJS和IE閱讀器

  1. IE不希望元素名以ng開頭,除非聲明了名字空間:<html xmlns:ng="http://angularjs.org">
  2. IE是唯1緩存XHR要求的?
  3. p393 Web爬蟲通常不會抓取JS利用(需要包括JS解釋器)?
  4. Google會把hashbang(#!)轉換為?+escaped_fragment_=... ?
  5. 獲得快照(?)
    1. PhantomJS
    2. Zombie.js
  6. Prerender.io Nodehttp://www.vxbq.cn/server/

構建AngularJS Chrome利用

優化AngularJS利用

  1. bindonce

調試AngularJS

  1. Chrome擴大Batarang

下1步

  1. jqLite和jQuery
  2. Grunt
  3. grunt-angular-templates
  4. Lineman
  5. Bower
  6. Yeoman
  7. 配置Angular生成器

總結 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 在线亚洲欧洲福利视频 | 精品久久国产视频 | 69精品视频 | 最近中文字幕mv手机免费高清 | 亚洲天码中文字幕第一页 | 亚洲欧美自拍另类图片色 | 波多野结衣在线观看一区 | 性欧美videos另类hd | 免费在线亚洲 | 在线观看男女激情小视频 | 免费中文字幕视频 | 欧美一级视频免费观看 | 日韩69视频| 国产亚洲精品资源一区 | 国产69精品久久久久妇女 | 亚洲图片偷拍区 | 国产精品久久久久久久久久一区 | 广西毛片| 2022国产精品最新在线 | 日韩 国产 在线 | 伊人福利视频 | 毛片一级做a爰片性色 | 国产精品视频分类一区 | 日韩欧美在线观看视频一区二区 | 操人网站 | 午夜影院美女 | 亚洲小说图片 | 国产精品久久久久久一区二区 | 亚洲香蕉一区二区三区在线观看 | 欧美精品久久久亚洲 | 亚洲性69影院在线观看 | 国产不卡精品一区二区三区 | 欧美性xxx久久 | 男女激情视频网站 | www.av免费| 亚洲最大福利 | 尤物视频黄 | 欧美激情_区二区三区 | 日韩欧美三区 | 2022国内精品免费福利视频 | 中文字幕2区 |