精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

七步從AngularJS菜鳥到專家(4和5):指令和表達(dá)式

開發(fā) 前端
這一篇包含了"AngularJS - 七步從菜鳥到專家"系列的第四篇(指令)和第五篇(表達(dá)式)。

這一篇包含了"AngularJS - 七步從菜鳥到專家"系列的第四篇(指令)和第五篇(表達(dá)式)。

之前的幾篇展示了我們應(yīng)用的核心組件,以及如何設(shè)置搭建一個Angular.js應(yīng)用。在這一部分,我們會厘清一些術(shù)語,然后深入探討很多Angular.js提供的核心功能。

通 過這整個系列的教程,我們會開發(fā)一個NPR(美國全國公共廣播電臺)廣播的音頻播放器,它能顯示Morning Edition節(jié)目里現(xiàn)在播出的***故 事,并在我們的瀏覽器里播放它們。完成版的Demo可以看這里(http://www.ng-newsletter.com/code /beginner_series/)

第四部分 指令屬性

目前為止,我們已提到過幾次“指令屬性”的概念,但從未深入探討過它到底是什么。實際上,“指令屬性”就是綁定在DOM元素上的函數(shù),它可以調(diào)用方法、定義行為、綁定controller及$scope對象、操作DOM,等等等等。

當(dāng)瀏覽器啟動、開始解析HTML(像平時一樣)時,DOM元素上的指令屬性就會跟其他屬性一樣被解析。

當(dāng)一個Angular.js應(yīng)用啟動,Angular編譯器就會遍歷DOM樹(從有ng-app指令屬性的那個DOM元素開始,如我們在本系列***篇里所提過的),解析HTML,尋找這些指令屬性函數(shù)。

當(dāng)在一個DOM元素上找到一個或多個這樣的指令屬性函數(shù),它們就會被收集起來、排序,然后按照優(yōu)先級順序被執(zhí)行。

每個指令屬性都有自己的優(yōu)先級,在我們關(guān)于指令屬性的專題文章里(http://www.ng-newsletter.com/posts/directives.html),你可以找到更深入的信息。

Angular.js應(yīng)用的動態(tài)性和響應(yīng)能力,都要歸功于指令屬性。之前我們已經(jīng)看過一些指令屬性的用例:

ng-model

  1. input ng-model="name" name="Name" placeholder="Enter your name"/> 
  2. <h4>Your name: {{ name }}</h4> 

試試看 

ng-model指令屬性(我們在之前的章節(jié)使用過它),被用來將DOM文本輸入框的值,跟controller里的$scope model綁定起來。具體的實現(xiàn)過程,是在這個值上綁定了一個$watch函數(shù)(類似JavaScript里的事件監(jiān)聽函數(shù))。

$watch函數(shù)(在使用時)運行在Angular.js的事件循環(huán)(即$digest循環(huán))里,讓Angular.js能夠?qū)OM進(jìn)行相應(yīng)的更新。請關(guān)注我們關(guān)于$digest循環(huán)的高級文章!

在Angular.js應(yīng)用的開發(fā)中,我們用指令屬性來將行為綁定到DOM上。指令屬性的使用,是一個 應(yīng)用能否擁有動態(tài)性、響應(yīng)能力的關(guān)鍵。Angular.js提供了很多缺省的指令屬性,現(xiàn)在讓我們來看看其中幾個,以及如何使用它們。

幾個常見的指令屬性

{{ 表達(dá)式 }}

這個雙大括號指令屬性,使用$watch()函數(shù),給括號內(nèi)的表達(dá)式注冊了一個監(jiān)聽器。正是這個$watch函數(shù),讓Angular.js能夠?qū)崟r自動更新view。

那么,到底什么算是個表達(dá)式?

第五部分 表達(dá)式

要想理解指令屬性的運作,我們必須先理解表達(dá)式,所以這里我們就繞個路,看看本系列的第五部分——表達(dá)式。在之前的例子里我們已經(jīng)見過表達(dá)式,例如 {{ person.name }} 和 {{ clock }}。

***的例子里 (10 * 3.3 | currency) 用了一個過濾器。本系列之后的部分,會深入介紹過濾器。

表達(dá)式粗略來看有點像 eval(javascript) 的結(jié)果。它們會經(jīng)過Angular.js的處理,從而擁有以下重要而獨特的性質(zhì):

  • 所有表達(dá)式都在scope這個context里被執(zhí)行,因此可以使用所有本地 $scope 中的變量。
  • 如果一個表達(dá)式的執(zhí)行導(dǎo)致類型錯誤或引用錯誤,這些錯誤將不會被拋出。
  • 表達(dá)式里不允許任何控制函數(shù)流程的功能(如if/else等條件語句)
  • 表達(dá)式可接受一個或多個串聯(lián)起來的過濾器。

試試看 

試試輸入“person“,“clock“或其他數(shù)學(xué)算式如2+4。你甚至可以操作scope,例如,試試輸入person.name = ”Ari”; person.age = 28; person 或 clock

表達(dá)式都運行在調(diào)用它們的scope里,所以一個表達(dá)式可訪問并操作其scope上的一切。由此,你可以使用表達(dá)式遍歷其scope的屬性(我們在ng-repeat中會看到這一應(yīng)用)、調(diào)用scope里的函數(shù),或者對scope中的變量進(jìn)行數(shù)學(xué)運算。

現(xiàn)在,讓我們回到指令屬性…

ng-init

ng-init指令屬性是一個在啟動時運行的函數(shù)(在程序進(jìn)入運行階段之前)。它讓我們能夠在程序運行前設(shè)定初始變量的值:

  1. <b ng-init='name = "Ari Lerner"'>Hello, {{ name }}</b> 

試試看 

ng-click

ng-click指令屬性給DOM元素注冊了一個點擊事件的監(jiān)聽器。當(dāng)此DOM元素上有點擊事件發(fā)生(即當(dāng)此button或link被點擊時),Angular.js就會執(zhí)行表達(dá)式的內(nèi)容,并相應(yīng)地更新view。

  1. <button ng-click="counter = counter + 1">Add one</button> 
  2. Current counter: {{ counter }} 

#p#

試試看

我們也可以用ng-click 來調(diào)用在controller里寫好并綁定在$scope上的函數(shù),例如:

  1. <button ng-click="sayHello()">Say hello</button> 

controller 里的函數(shù):

  1. app.controller('MyController'function($scope) { 
  2.    $scope.sayHello = function() { 
  3.      alert("hello!"); 
  4.    } 
  5.  }); 

試試看

ng-show / ng-hide

The ng-show and ng-hide directives show or hide a portion of the DOM depending on whether the expression is truthy.

ng-show和ng-hide指令,根據(jù)賦予它們的表達(dá)式的值的真假性(truthy),來顯示和隱藏它們所屬的那一部分DOM。

我們在這里不會深入,但你應(yīng)該熟悉JavaScript中變量值的“truthy”和“falsy”概念。

  1. <button ng-init="shouldShow = true" ng-click="shouldShow = !shouldShow">Flip the shouldShow variable</button> 
  2.  <div ng-show="shouldShow"
  3.    <h3>Showing {{ shouldShow }}</h3> 
  4.  </div> <div ng-hide="shouldShow"
  5.    <h3>Hiding {{ shouldShow }}</h3> 
  6.  </div> 

試試看

圖6

ng-repeat

ng-repeat指令遍歷一個數(shù)據(jù)集合中的每個數(shù)據(jù)元素,加載HTML模版把數(shù)據(jù)渲染出來。被重復(fù)使用的模版元素,就是我們綁定了這個指令屬性的DOM元素。每一個使用模版渲染的DOM元素都有自己的scope。

在更多的解釋之前,我們先看一個例子。假設(shè)我們的controller里有這樣一個數(shù)據(jù)元素的數(shù)組:

  1. $scope.roommates = [ 
  2.    { name: 'Ari'}, 
  3.    { name: 'Q'}, 
  4.    { name: 'Sean'}, 
  5.    { name: 'Anand'
  6.  ]; 

在view里我們可以用ng-repeat來遍歷這個集合里的數(shù)據(jù):

  1. <ul> 
  2.    <li ng-repeat="person in roommates">{{ person.name }}</li> </ul> 

請看

  • Ari
  • Q
  • Sean
  • Anand

對賦予ng-repeat的表達(dá)式稍作改動,我們還可以用它遍歷一個由成對的key-value數(shù)據(jù)組成的集合。例如,假設(shè)我們有一個人名和他們最喜歡的顏色的數(shù)據(jù)集合:

  1. 請看 
  2.  
  3.     Ari 
  4.     Q 
  5.     Sean 
  6.     Anand 

要遍歷它,我們可以給ng-repeat指令屬性賦予這個表達(dá)式:(key, value) in object:

  1. <ul> 
  2.    <li ng-repeat="(name, color) in people">{{ name }}'s favorite color is {{ color }} 
  3.    </li> 
  4.  </ul> 

請看

  • Ari’s favorite color is orange
  • Q’s favorite color is blue
  • Sean’s favorite color is green

Angular.js提供的直接可用的指令屬性并不多,但它讓我們可以很容易地創(chuàng)建自己的指令屬性。請到這里查看我們的指令屬性創(chuàng)建指南:http://www.ng-newsletter.com/posts/directives.html

我們應(yīng)用中的指令屬性

在上一篇中,我們的收音機(jī)應(yīng)用只從NPR API取回了***的音頻節(jié)目列表:

  1. $scope.programs = data.list.story; 

現(xiàn)在我們學(xué)了遍歷一個list的實現(xiàn)方法,可以在我們的收音機(jī)應(yīng)用里,像剛才那樣用ng-repeat來遍歷這個節(jié)目列表了:

  1. <ul id="programs_list" class=""
  2.    <li ng-repeat="program in programs"
  3.      <span class="large-12">{{ program.title.$text }}</span> 
  4.    </li> 
  5. </ul> 

#p#

NPR API給我們的是一個有title+$text的列表,這個結(jié)構(gòu)是NPR API所特有的,而不是Angular.js的。

現(xiàn)在我們列出了節(jié)目和它們的標(biāo)題,但還不能點擊并播放它們。用ng-click我們可以給HTML元素加上一個點擊功能:

  1. <ul id="programs_list" class=""> 
  2.    <li ng-repeat="program in programs" ng-click="play(program)"> 
  3.      <span class="large-12">{{ program.title.$text }}</span> 
  4.    </li> 
  5. </ul> 

通過這一步,我們把一個play動作函數(shù)綁定到了列表里的<li>DOM元素上。現(xiàn)在,我們在PlayerController里創(chuàng)建這個play動作函數(shù),然后我們就有了一個功能完備的音頻應(yīng)用:

  1. // format.mp4.$text是NPR API給我們的到這個音頻mp4文件的路徑 $scope.play = function(program) { 
  2.    if ($scope.playing) audio.pause(); 
  3.    var url = program.audio[0].format.mp4.$text; 
  4.    audio.src = url
  5.    audio.play(); 
  6.    // 儲存播放器的狀態(tài)為正在播放 
  7.    $scope.playing = true

現(xiàn)在這個應(yīng)用功能完備了,但是還不太好看。而且隨著我們繼續(xù)添加新功能,代碼也會膨脹,變得難以管理。我們可以創(chuàng)建自己的指令屬性,來幫助我們減少復(fù)雜性。

想更多地學(xué)習(xí)自定義指令屬性,可以看看我們深入探討指令屬性的文章:http://www.ng-newsletter.com/posts/directives.html

創(chuàng)建自定義指令屬性,我們使用app對象的directive方法:

  1. app.directive('nprLink', function() { 
  2.    return { 
  3.      restrict: 'EA', 
  4.      require: ['^ngModel'], 
  5.      replace: true, 
  6.      scope: { 
  7.        ngModel: '=', 
  8.        play: '&' 
  9.      }, 
  10.      templateUrl: '/views/nprListItem.html', 
  11.      link: function(scope, ele, attr) { 
  12.        scopescope.duration = scope.ngModel.audio[0].duration.$text; 
  13.      } 
  14.    } 
  15. }); 

我們不會逐個解釋每個選項的意義,因為我們有一篇專門的深入文章來介紹它們(http://www.ng-newsletter.com /posts/directives.html)。這里我們只需要明白,現(xiàn)在我們就能在HTML里使用這個自定義的指令屬性了,它會將它所在的DOM元素 替換為我們給定的templateUrl所指向的模版里的內(nèi)容(在 /views/nprListItem 中)。

現(xiàn)在,我們的主HTML文件可以保持整潔,而將用來渲染列表內(nèi)容的view,創(chuàng)建在這個單獨提取出來的模版文件里:

  1. <div class="nprLink row" ng-click="play(ngModel)"> 
  2.    <span class="name large-8 columns"> 
  3.      <button class="large-2 small-2 playButton columns"><div class="triangle"></div></button> 
  4.      <div class="large-10 small-10 columns"> 
  5.        <div class="row"> 
  6.          <span class="large-12">{{ ngModel.title.$text }}</span> 
  7.        </div> 
  8.        <div class="row"> 
  9.          <div class="small-1 columns"></div> 
  10.          <div class="small-2 columns push-8"><a href="{{ ngModel.link[0].$text }}">Link</a></div> 
  11.        </div> 
  12.      </div> 
  13.    </span> 
  14.  </div> 

注意我們在模版文件里用ngModel來指向之前的program數(shù)據(jù),因為在創(chuàng)建自定義指令屬性時,我們做了設(shè)置。

現(xiàn)在,我們在主HTML文件里就不用再寫上面那么多HTML,而只要簡單地?fù)Q上我們的自定義指令屬性npr-link:

  1. <ul id="programs_list" class=""> 
  2.    <li ng-repeat="program in programs"> 
  3.      <span npr-link play='play(program)' ng-model="program"></span> 
  4.    </li> 
  5. </ul> 

在下一章中,我們會介紹Service的用法,以及如何在我們應(yīng)用的多個controller之間通訊。

本系列的官方代碼庫可從github上下載:

https://github.com/auser/ng-newsletter-beginner-series.

要將這個代碼庫保存到本地,請先確保安裝了git,clone此代碼庫,然后check out其中的part5分支。我們使用XHR獲取模版,所以你需要在本地服務(wù)器上運行這一章的代碼。在part5分支里我們提供了服務(wù)器端代碼:

  1. git clone https://github.com/auser/ng-newsletter-beginner-series.git git checkout -b part5 
  2. ./bin/server.sh 

 

責(zé)任編輯:陳四芳 來源: 伯樂在線
相關(guān)推薦

2013-10-29 14:57:17

AngularJS項目

2013-11-06 13:55:27

AngularJS服務(wù)

2013-10-08 11:25:57

AngularJSAJAX

2013-11-06 10:10:15

AngularJSScopes

2013-08-28 14:12:02

Web前端開發(fā)前端

2016-02-15 10:18:11

2017-12-07 14:23:55

前端Javascript正則表達(dá)式

2019-03-10 20:37:14

Python編程語言

2010-08-10 13:15:36

Flex配置

2023-04-28 14:38:47

2018-09-27 15:25:08

正則表達(dá)式前端

2010-11-16 14:53:02

Oracle游標(biāo)表達(dá)式

2009-07-21 14:38:08

Scalamatch表達(dá)式break和conti

2009-09-17 09:09:50

Lambda表達(dá)式Linq查詢

2009-11-06 14:33:27

WCF代理節(jié)點

2011-01-06 09:15:24

ESXESXi

2009-07-30 18:08:14

IT與業(yè)務(wù)融合

2017-04-21 14:21:53

深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2009-11-06 13:59:09

WCF Service

2009-05-22 09:48:07

表達(dá)式樹泛型委托.NET
點贊
收藏

51CTO技術(shù)棧公眾號

91麻豆制片厂| 成年人网站免费视频| 国产一区二区三区在线观看| 欧美日韩调教| 亚洲天堂免费观看| www.桃色.com| 极品美女一区| 一区二区激情视频| 日韩欧美精品一区二区| 午夜精品久久久久久久爽| 羞羞视频在线观看欧美| 久久久99久久精品女同性| 亚洲调教欧美在线| 电影91久久久| 在线观看一区二区精品视频| 久久综合久久久久| 调教视频免费在线观看| 99这里都是精品| 亚洲a区在线视频| 男人天堂视频网| 亚洲狠狠婷婷| 久久不射热爱视频精品| 成熟人妻av无码专区| 精品成人自拍视频| 日韩视频中午一区| 亚洲美女爱爱视频| 日韩毛片一区| 91久久久免费一区二区| 日本毛片在线免费观看| 欧美xxxx性xxxxx高清| 1024成人网| 亚洲国产激情一区二区三区| 日本天堂在线| 99久久99久久久精品齐齐| 51精品国产人成在线观看| 国产又黄又粗又长| 看片的网站亚洲| 国产精品美女999| 69视频免费看| 久久久人人人| 国产99久久精品一区二区永久免费| 亚洲精品77777| 在线观看视频日韩| 欧美精品久久久久| 久久久久免费看| 欧美三级特黄| 欧美福利在线观看| 国产一二三四在线| 黄色成人av网站| 久久久久久久香蕉网| jizz国产免费| 中文亚洲字幕| 日韩美女免费线视频| 丁香社区五月天| 久久免费国产| 国产精品午夜一区二区欲梦| 中文字幕久久网| 久久草av在线| 亚洲一区二区三区久久 | 精品国产白色丝袜高跟鞋| 国产精品久久久久一区| 最新中文字幕久久| 91cn在线观看| 午夜精品久久久久久久久久| 欧美视频在线播放一区| 免费高清视频在线一区| 欧美日韩国产123区| 日本高清一区二区视频| 久久久久久久久成人| 精品久久人人做人人爰| 国产精品第七页| 欧美午夜精彩| 美女av一区二区| 精品无码人妻一区二区三区| 国产毛片一区| 成人久久久久久| 亚洲精品国产一区二| 91毛片在线观看| 一本色道久久99精品综合| 亚洲小说区图片区都市| 欧美日韩精品中文字幕| 九九热免费精品视频| 欧美国产中文高清| 亚洲乱码一区二区| 久久噜噜色综合一区二区| 狠狠噜噜久久| 国产精品爽爽爽| 男人天堂手机在线观看| 中文在线一区二区| 国产黄色激情视频| 都市激情综合| 日韩午夜三级在线| 国产熟妇搡bbbb搡bbbb| 亚洲国产一成人久久精品| 国语自产在线不卡| 一级片在线免费观看视频| 99国产精品国产精品久久| 色综合久久久久久久久五月| 欧美xxxx性xxxxx高清| 欧美视频一区二区在线观看| 亚洲香蕉中文网| 欧美gay男男猛男无套| 97在线视频国产| 国产乱码一区二区| 国产视频一区在线播放| 久久这里只有精品8| 久久91视频| 日韩精品视频在线免费观看| 国产老头老太做爰视频| 日韩va欧美va亚洲va久久| 国产精品v欧美精品v日韩| 日本最黄一级片免费在线| 欧美日韩精品国产| 最新版天堂资源在线| 99精品视频在线观看免费播放| 26uuu亚洲国产精品| www.国产精品视频| 国产精品电影一区二区三区| 日本黄网站免费| 成人知道污网站| 久久中文字幕在线视频| 中文字幕人妻色偷偷久久| 99精品国产视频| 免费特级黄色片| 激情五月综合婷婷| 日韩一区二区在线视频| 国产一级片免费在线观看| 久久亚洲综合色| 久久国产精品视频在线观看| 日韩精品成人在线观看| 久久九九全国免费精品观看| 91精品国产色综合久久不8| 国产女人18水真多18精品一级做| 国产欧美在线一区| 色爱综合av| 成人性生交免费看| 亚洲夜夜综合| 91麻豆精品国产91久久久资源速度 | 美女网站一区二区| 日韩欧美视频一区二区| 奇米777日韩| 亚洲欧美制服中文字幕| 在线观看免费av片| 91蜜桃免费观看视频| 国产真实乱子伦| 一区二区三区日本久久久| 5252色成人免费视频| 水中色av综合| 欧美性猛交丰臀xxxxx网站| av在线网站观看| 爽好久久久欧美精品| 日本一区免费观看| 黄色欧美视频| 不卡av日日日| 午夜精品久久久久久久99热黄桃| 亚洲一区二区欧美日韩| 亚洲中文字幕无码一区| 国产日韩欧美三区| 青青草原亚洲| 电影一区中文字幕| 精品中文字幕在线观看| 成人毛片在线免费观看| 欧美日韩一区二区免费在线观看 | 久久久人成影片免费观看| 亚洲影视九九影院在线观看| 黄网av在线| 亚洲美女中文字幕| 亚洲特级黄色片| 亚洲欧美日韩中文字幕一区二区三区| 黄色片子免费看| 日韩亚洲国产精品| 日韩av电影免费在线| 亚洲人成777| 久久男人的天堂| 日韩国产福利| 欧美久久一二三四区| 精品无码av在线| 国产喂奶挤奶一区二区三区| 欧美在线a视频| 在线亚洲一区| 黄色www在线观看| 久久久亚洲欧洲日产| 国产精品免费福利| 精品精品导航| 中文字幕国内精品| 成人福利小视频| 在线视频你懂得一区| 妺妺窝人体色www婷婷| 久久久精品黄色| 中文字幕一二三| 日日夜夜精品视频免费| 天堂av免费看| 精品日本12videosex| 国产精品久久波多野结衣| 国产亚洲人成a在线v网站 | www.男人天堂网| 精品国产乱码久久久| 国产精品一区而去| 伊人久久精品| 国产成人精彩在线视频九色| 日本高清在线观看视频| 在线电影av不卡网址| 人人妻人人澡人人爽久久av | 香蕉加勒比综合久久| 免费在线观看a级片| 久久久久国产精品麻豆ai换脸| 一区二区在线免费观看视频| 热久久免费视频| 草草久久久无码国产专区| 欧美日韩一区二区国产| 永久久久久久| 欧洲杯什么时候开赛| 久久亚洲高清| 国产成人一二| 91超碰在线免费观看| 日韩在线电影| 国产精品专区h在线观看| 激情开心成人网| 欧美一区二区三区四区在线| 丰满的护士2在线观看高清| 久久精品久久久久| jizz日韩| 这里只有精品在线观看| 男人av在线| 精品一区电影国产| 天天色综合久久| 亚洲成人精品久久久| 精品国产va久久久久久久| 欧美精品一级二级| 国产一区二区三区视频免费观看| 欧美四级电影在线观看| 国产亚洲欧美日韩高清| 色婷婷av一区二区三区大白胸| 精品成人久久久| 亚洲妇女屁股眼交7| 久久久久久激情| 一区二区不卡在线播放 | 日本暖暖在线视频| 中文字幕日韩视频| 99青草视频在线播放视| 在线观看国产精品91| 国产黄色在线| 一区二区亚洲精品国产| 97电影在线| 久久精品2019中文字幕| 黄色网页在线观看| 久久国产色av| 丁香高清在线观看完整电影视频 | 日韩影片在线观看| 成人动漫视频在线观看完整版 | 欧美aaa级| 国产精品专区一| 国产视频一区二区在线播放| 91超碰在线免费观看| 盗摄系列偷拍视频精品tp| 精品国产一区二区三| 久操精品在线| 亚洲不卡1区| 欧美色就是色| 裸体大乳女做爰69| 欧美午夜不卡影院在线观看完整版免费| 久久亚洲a v| 国产视频亚洲| 久久99爱视频| 国产福利电影一区二区三区| 一边摸一边做爽的视频17国产| 91毛片在线观看| 欧美xxxooo| 亚洲韩国一区二区三区| 无码人妻熟妇av又粗又大| 欧美日韩国产免费一区二区| 性欧美8khd高清极品| 日韩精品在线观看网站| 8888四色奇米在线观看| 欧美激情喷水视频| 日韩精选视频| 97在线资源站| 欧美午夜精彩| 蜜桃视频一区二区在线观看| 亚洲欧美成人| 91高清国产视频| 菠萝蜜视频在线观看一区| 九九热免费在线| 亚洲国产精品麻豆| 中文字幕人妻一区二区三区视频 | 五月天精品在线| 亚洲一区二区中文在线| 中文永久免费观看| 日韩三级高清在线| 国产福利片在线| 欧美高清videos高潮hd| 日韩毛片在线| 国产主播一区二区三区四区| 日韩欧美一区二区三区在线视频 | 黄色污污网站在线观看| 日韩美女视频在线| www.中文字幕久久久| 久久久爽爽爽美女图片| 国产亚洲欧美日韩精品一区二区三区| 国产区欧美区日韩区| 天天综合亚洲| 可以在线看的黄色网址| 成人午夜视频在线| 自拍偷拍第9页| 色综合久久天天综合网| www.97av.com| 精品国产欧美一区二区五十路| 日韩深夜视频| yy111111少妇影院日韩夜片 | 欧美美女18p| 久久91视频| 欧美日韩亚洲一区二区三区四区| 欧美日韩精品| 日韩av加勒比| 国产精品久久毛片a| 无码免费一区二区三区| 日韩久久免费电影| 2021中文字幕在线| 99国产高清| 欧美1区视频| 51自拍视频在线观看| 国产精品国产三级国产aⅴ中文| 天堂网中文字幕| 日韩精品视频观看| 在线男人天堂| 欧美日韩高清在线一区| 国产日韩一区| 一二三不卡视频| 日韩欧美黄色动漫| 天堂中文在线8| 久久久伊人日本| 超碰成人在线免费| 日韩精品一区二区在线视频| 国产成人免费网站| 国产一级视频在线播放| 精品国产免费人成电影在线观看四季| caoporm免费视频在线| 亚洲一区二区久久久久久久| 欧美黄免费看| 韩国av中国字幕| 亚洲国产一区二区三区| 老牛影视av牛牛影视av| 国模吧一区二区三区| 人人精品视频| 亚洲少妇第一页| 国产精品美女久久久久久久久久久 | 日本美女bbw| 欧美三片在线视频观看 | 国产91精品久| 亚洲日产av中文字幕| 丁香婷婷激情网| 亚洲国产精华液网站w| 一级黄色片免费| 久久国产精品电影| а√中文在线天堂精品| 成年人午夜视频在线观看| 久久久五月婷婷| 这里只有精品免费视频| 精品国偷自产在线视频99| 日韩精品一区二区三区中文在线 | 久久精品国产在热久久| 欧美风情第一页| 亚洲成年人在线| 欧美舌奴丨vk视频| 一区二区视频在线播放| 国产91精品精华液一区二区三区 | 欧美日韩精品欧美日韩精品| 菠萝蜜视频国产在线播放| 国产精品视频在线免费观看 | av基地在线| 亚洲已满18点击进入在线看片| 亚洲激情在线| 国产又黄又粗的视频| 日韩一区二区三区三四区视频在线观看 | 亚洲区小说区图片区qvod按摩| 丰满少妇在线观看| 一区二区三区不卡视频| 男人天堂资源在线| 亚洲va电影大全| 久久午夜精品一区二区| 欧美在线视频第一页| 精品一区精品二区| 电影一区中文字幕| 国产美女三级视频| 亚洲美女屁股眼交3| 日本韩国精品一区二区| 91亚洲精品视频| 亚洲欧美网站| 久久久久久久久久网站| 亚洲女同性videos| 日韩一二三区| 午夜免费精品视频| 亚洲丶国产丶欧美一区二区三区| 国产h在线观看| 国产一区高清视频| 国产精品自拍毛片| 中国女人真人一级毛片| 午夜精品在线视频| 欧美精品国产| 日本 欧美 国产|