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

AngularJS 指令(Directives)實踐指南

開發 前端
一個指令用來引入新的HTML語法。指令是DOM元素上的標記,使元素擁有特定的行為。舉例來說,靜態的HTML不知道如何來創建和展現一個日期選擇器控件。讓HTML能識別這個語法,我們需要使用指令。指令通過某種方法來創建一個能夠支持日期選擇的元素。我們會循序漸進地介紹這是如何實現的。

 

指令(Directives)是所有AngularJS應用最重要的部分。盡管AngularJS已經提供了非常豐富的指令,但還是經常需要創建應用特定的指令。這篇教程會為你講述如何自定義指令,以及介紹如何在實際項目中使用。在這篇文章的***(第二部分),我會指導你如何使用Angular指令來創建一個簡單的記事本應用。

概述

一個指令用來引入新的HTML語法。指令是DOM元素上的標記,使元素擁有特定的行為。舉例來說,靜態的HTML不知道如何來創建和展現一個日期選擇器控件。讓HTML能識別這個語法,我們需要使用指令。指令通過某種方法來創建一個能夠支持日期選擇的元素。我們會循序漸進地介紹這是如何實現的。 如果你寫過AngularJS的應用,那么你一定已經使用過指令,不管你有沒有意識到。你肯定已經用過簡單的指令,比如 ng-mode, ng-repeat, ng-show等。這些指令都賦予DOM元素特定的行為。例如,ng-repeat 重復特定的元素,ng-show 有條件地顯示一個元素。如果你想讓一個元素支持拖拽,你也需要創建一個指令來實現它。指令背后基本的想法很簡單。它通過對元素綁定事件監聽或者改變DOM而使HTML擁有真實的交互性。

jQuery視角

想象一下使用jQuery如何創建一個日期選擇器。首先,我們在HTML中添加一個普通的輸入框,然后通過jQuery調用 $(element).dataPicker() 來將它轉變成一個日期選擇器。但是,仔細想一下。當一個設計人員過來檢查HTML標記的時候,他/她能否立刻猜到這個字段實際上表示的內容?這只是一個簡單的輸入框,或者一個日期選擇器?你需要查看jQuery代碼來確定這些。而Angular的方法是使用一個指令來擴展HTML。所以,一個日期選擇器的指令可以是下面的形式:

  1. <input type="text" /> 

或者是這樣:

  1. <input type="text" /> 

這種創建UI組建的方式更加直接和清晰。你可以輕易地通過查看元素就明白這到底是什么。

創建自定義指令:

一個Angular指令可以有以下的四種表現形式: 1. 一個新的HTML元素(<data-picker></data-picker>) 2. 元素的屬性(<input type=”text” data-picker/>) 3. CSS class(<input type=”text” class=”data-picker”/>) 4. 注釋(<!–directive:data-picker –>) 當然,我們可以控制我們的指令在HTML中的表現形式。下面我們來看一下AngularJS中的一個典型的指令的寫法。指令注冊的方式與 controller 一樣,但是它返回的是一個擁有指令配置屬性的簡單對象(指令定義對象) 。下面的代碼是一個簡單的 Hello World 指令。

  1. var app = angular.module('myapp', []);  
  2.    
  3. app.directive('helloWorld'function() {  
  4.   return {  
  5.       restrict: 'AE',  
  6.       replace: 'true',  
  7.       template: '<h3>Hello World!!</h3>' 
  8.   };  
  9. });  

在上面的代碼中,app.directive()方法在模塊中注冊了一個新的指令。這個方法的***個參數是這個指令的名字。第二個參數是一個返回指令定義對象的函數。如果你的指令依賴于其他的對象或者服務,比如 $rootScope, $http, 或者$compile,他們可以在這個時間被注入。這個指令在HTML中以一個元素使用,如下:

  1. <hello-world/>  
  2. //OR  
  3. <hello:world/>  

或者,以一個屬性的方式使用:

  1. <div hello-world></div>  
  2. //OR  
  3. <div hello:world/>  

如果你想要符合HTML5的規范,你可以在元素前面添加 x- 或者 data-的前綴。所以下面的標記也會匹配 helloWorld 指令:

  1. <div data-hello-world></div>  
  2. //OR  
  3. <div x-hello-world></div>  

注意: 在匹配指令的時候,Angular會在元素或者屬性的名字中剔除 x- 或者 data- 前綴。 然后將 – 或者 : 連接的字符串轉換成駝峰(camelCase)表現形式,然后再與注冊過的指令進行匹配。這是為什么,我們在HTML中以 hello-world 的方式使用 helloWorld 指令。其實,這跟HTML對標簽和屬性不區分大小寫有關。 盡管上面的指令僅僅實現了靜態文字的顯示,但是這里還是有一些有趣的點值得我們去挖掘。我們在指令定義過程中使用了三個屬性來配置指令。我們來一一介紹他們的作用。

  • restrict – 這個屬性用來指定指令在HTML中如何使用(還記得之前說的,指令的四種表示方式嗎)。在上面的例子中,我們使用了 ‘AE’。所以這個指令可以被當作新的HTML元素或者屬性來使用。如果要允許指令被當作class來使用,我們將 restrict 設置成 ‘AEC’。
  • template – 這個屬性規定了指令被Angular編譯和鏈接(link)后生成的HTML標記。這個屬性值不一定要是簡單的字符串。template 可以非常復雜,而且經常包含其他的指令,以及表達式({{ }})等。更多的情況下你可能會見到 templateUrl, 而不是 template。所以,理想情況下,你應該將模板放到一個特定的HTML文件中,然后將 templateUrl 屬性指向它。
  • replace – 這個屬性指明生成的HTML內容是否會替換掉定義此指令的HTML元素。在我們的例子中,我們用 <hello-world></hello-world>的方式使用我們的指令,并且將 replace 設置成 true。所以,在指令被編譯之后,生成的模板內容替換掉了 <hello-world></hello-world>。最終的輸出是 <h3>Hello World!!</h3>。如果你將 replace 設置成 false,也就是默認值,那么生成的模板會被插入到定義指令的元素中。

打開這個 plunker,在”Hello World!!”右鍵檢查元素內容,來更形象地明白這些。

Link函數和Scope

指令生成出的模板其實沒有太多意義,除非它在特定的scope下編譯。默認情況下,指令并不會創建新的子scope。更多的,它使用父scope。也就是說,如果指令存在于一個controller下,它就會使用這個controller的scope。 如何運用scope,我們要用到一個叫做 link 的函數。它由指令定義對象中的link屬性配置。讓我們來改變一下我們的 helloWorld 指令,當用戶在一個輸入框中輸入一種顏色的名稱時,Hello World 文字的背景色自動發生變化。同時,當用戶在 Hello World 文字上點擊時,背景色變回白色。 相應的HTML標記如下:

  1. <body ng-controller="MainCtrl">  
  2.   <input type="text" ng-model="color" placeholder="Enter a color" />  
  3.   <hello-world/>  
  4. </body>  

修改后的 helloWorld 指令如下:

  1. app.directive('helloWorld'function() {  
  2.   return {  
  3.     restrict: 'AE',  
  4.     replace: true,  
  5.     template: '<p style="background-color:{{color}}">Hello World',  
  6.     link: function(scope, elem, attrs) {  
  7.       elem.bind('click'function() {  
  8.         elem.css('background-color''white');  
  9.         scope.$apply(function() {  
  10.           scope.color = "white";  
  11.         });  
  12.       });  
  13.       elem.bind('mouseover'function() {  
  14.         elem.css('cursor''pointer');  
  15.       });  
  16.     }  
  17.   };  
  18. });  

我們注意到指令定義中的 link 函數。 它有三個參數:

  • scope – 指令的scope。在我們的例子中,指令的scope就是父controller的scope。
  • elem – 指令的jQLite(jQuery的子集)包裝DOM元素。如果你在引入AngularJS之前引入了jQuery,那么這個元素就是jQuery元素,而不是jQLite元素。由于這個元素已經被jQuery/jQLite包裝了,所以我們就在進行DOM操作的時候就不需要再使用 $()來進行包裝。
  • attr – 一個包含了指令所在元素的屬性的標準化的參數對象。舉個例子,你給一個HTML元素添加了一些屬性:,那么可以在 link 函數中通過 attrs.someAttribute 來使用它。

link函數主要用來為DOM元素添加事件監聽、監視模型屬性變化、以及更新DOM。在上面的指令代碼片段中,我們添加了兩個事件, click,和 mouseover。click 處理函數用來重置 <p> 的背景色,而 mouseover 處理函數改變鼠標為 pointer。在模板中有一個表達式 {{color}},當父scope中的 color 發生變化時,它用來改變 Hello World 文字的背景色。 這個 plunker 演示了這些概念。

#p#

compile函數

compile 函數在 link 函數被執行之前用來做一些DOM改造。它接收下面的參數:

  • tElement – 指令所在的元素
  • attrs – 元素上賦予的參數的標準化列表

要注意的是 compile 函數不能訪問 scope,并且必須返回一個 link 函數。但是如果沒有設置 compile 函數,你可以正常地配置 link 函數,(有了compile,就不能用link,link函數由compile返回)。compile函數可以寫成如下的形式:

  1. app.directive('test'function() {  
  2.   return {  
  3.     compile: function(tElem,attrs) {  
  4.       //do optional DOM transformation here  
  5.       return function(scope,elem,attrs) {  
  6.         //linking function here  
  7.       };  
  8.     }  
  9.   };  
  10. });  

大多數的情況下,你只需要使用 link 函數。這是因為大部分的指令只需要考慮注冊事件監聽、監視模型、以及更新DOM等,這些都可以在 link 函數中完成。 但是對于像 ng-repeat 之類的指令,需要克隆和重復 DOM 元素多次,在 link 函數執行之前由 compile 函數來完成。這就帶來了一個問題,為什么我們需要兩個分開的函數來完成生成過程,為什么不能只使用一個?要回答好這個問題,我們需要理解指令在Angular中是如何被編譯的!

指令是如何被編譯的

當應用引導啟動的時候,Angular開始使用 $compile 服務遍歷DOM元素。這個服務基于注冊過的指令在標記文本中搜索指令。一旦所有的指令都被識別后,Angular執行他們的 compile 方法。如前面所講的,compile 方法返回一個 link 函數,被添加到稍后執行的 link 函數列表中。這被稱為編譯階段。如果一個指令需要被克隆很多次(比如 ng-repeat),compile函數只在編譯階段被執行一次,復制這些模板,但是link 函數會針對每個被復制的實例被執行。所以分開處理,讓我們在性能上有一定的提高。這也說明了為什么在 compile 函數中不能訪問到scope對象。 在編譯階段之后,就開始了鏈接(linking)階段。在這個階段,所有收集的 link 函數將被一一執行。指令創造出來的模板會在正確的scope下被解析和處理,然后返回具有事件響應的真實的DOM節點。

改變指令的Scope

默認情況下,指令獲取它父節點的controller的scope。但這并不適用于所有情況。如果將父controller的scope暴露給指令,那么他們可以隨意地修改 scope 的屬性。在某些情況下,你的指令希望能夠添加一些僅限內部使用的屬性和方法。如果我們在父的scope中添加,會污染父scope。 其實我們還有兩種選擇:

  • 一個子scope – 這個scope原型繼承子父scope。
  • 一個隔離的scope – 一個孤立存在不繼承自父scope的scope。

這樣的scope可以通過指令定義對象中 scope 屬性來配置。下面的代碼片段是一個例子:

  1. app.directive('helloWorld'function() {  
  2.   return {  
  3.     scope: true,  // use a child scope that inherits from parent  
  4.     restrict: 'AE',  
  5.     replace: 'true',  
  6.     template: '<h3>Hello World!!</h3>' 
  7.   };  
  8. });  

上面的代碼,讓Angular給指令創建一個繼承自父socpe的新的子scope。 另外一個選擇,隔離的scope:

  1. app.directive('helloWorld'function() {  
  2.   return {  
  3.     scope: {},  // use a new isolated scope  
  4.     restrict: 'AE',  
  5.     replace: 'true',  
  6.     template: '<h3>Hello World!!</h3>' 
  7.   };  
  8. });  

這個指令使用了一個隔離的scope。隔離的scope在我們想要創建可重用的指令的時候是非常有好處的。通過使用隔離的scope,我們能夠保證我們的指令是自包含的,可以被很容易的插入到HTML應用中。 它內部不能訪問父的scope,所保證了父scope不被污染。 在我們的 helloWorld 指令例子中,如果我們將 scope 設置成 {},那么上面的代碼將不會工作。 它會創建一個新的隔離的scope,那么相應的表達式 {{color}} 會指向到這個新的scope中,它的值將是 undefined. 使用隔離的scope并不意味著我們完全不能訪問父scope的屬性。其實有一些技術可以允許我們訪問父scope的屬性,甚至監視他們的變化。我們會在指令這個系列的第二部分中討論這些技術,以及一些更高級的概念,比如 Controller 函數。 第二部分也會和你一起使用Angular指令創建一個較為豐富的記事本應用。 所以,請保持關注。

原文鏈接: sitepoint   翻譯: 伯樂在線 - 陳 鑫偉

譯文鏈接: http://blog.jobbole.com/62249/

責任編輯:林師授 來源: 伯樂在線
相關推薦

2014-08-11 15:11:48

AngularJS

2019-09-06 09:00:00

開發技能代碼

2010-07-28 09:18:03

Flex2.0

2023-08-08 14:01:37

Web低碳

2012-03-30 16:54:33

JavaJProbe

2023-11-28 07:57:04

Dockerfile指令

2023-12-13 12:00:05

2010-06-12 17:37:18

UML實踐指南

2019-03-11 08:19:39

SSLTLS服務器

2022-06-17 09:30:00

參數化測試TestNG測試

2020-12-04 10:42:54

GithubSSDNode.js

2024-10-10 09:46:18

2023-05-24 10:06:42

多云實踐避坑

2015-11-12 16:14:52

Python開發實踐

2024-03-08 22:39:55

GolangApacheKafka

2023-05-22 15:40:00

人工智能ChatGPT A

2021-03-02 08:00:00

項目管理組織工具

2024-07-03 10:09:29

2021-02-22 17:00:31

Service Mes微服務開發

2020-04-17 08:44:54

CISO內部威脅網絡安全
點贊
收藏

51CTO技術棧公眾號

日韩欧美看国产| 欧美日韩伦理片| 欧美婷婷在线| 亚洲欧美另类在线观看| 天天综合网日韩| 在线观看免费视频你懂的| 97se亚洲国产综合在线| 国产精品日韩欧美大师| 国产一级特黄a高潮片| 红桃成人av在线播放| 精品精品欲导航| 亚洲三级视频网站| 毛片网站在线看| 国产精品乱码一区二区三区软件| 国产精品有限公司| 91尤物国产福利在线观看| 一区二区三区福利| 欧美精品亚州精品| 山东少妇露脸刺激对白在线| 丁香婷婷成人| 51精品国自产在线| 黄色一级大片在线观看| 国产粉嫩在线观看| 亚洲乱码中文字幕| 亚洲免费在线精品一区| 四虎影视2018在线播放alocalhost| 精东粉嫩av免费一区二区三区| 久久久久久久久久久成人| 亚洲一区电影在线观看| 精品精品99| 亚洲国产小视频| 中文字幕国产高清| 在线国产成人影院| 一本色道久久加勒比精品| 日本大片免费看| 成人av福利| 亚洲欧美一区二区在线观看| 日产中文字幕在线精品一区| 人妻少妇一区二区三区| 韩国v欧美v亚洲v日本v| 国产精品国产自产拍高清av水多| 久久久久久久久久久久久久av| 欧美天天视频| 欧美激情videoshd| 欧美第一页在线观看| 色婷婷亚洲mv天堂mv在影片| 国产香蕉97碰碰久久人人| 中文字幕av观看| 卡通动漫国产精品| 亚洲第一中文字幕| 无码国产69精品久久久久网站| 国产aa精品| 8v天堂国产在线一区二区| 天天影视综合色| 日本另类视频| 欧美色老头old∨ideo| 冲田杏梨av在线| 99久久伊人| 欧美乱熟臀69xxxxxx| 污网站免费在线| 香蕉久久久久久| 91精品国产欧美一区二区18| 欧美国产日韩在线视频 | 成人精品视频99在线观看免费| 日本成人一级片| 激情综合色丁香一区二区| 国产日韩中文在线| va视频在线观看| 成人美女视频在线看| 精品国产第一页| 三级毛片在线免费看| 久久精品日韩一区二区三区| 日韩av一区二区三区在线| 最新国产在线观看| 亚洲美女偷拍久久| 国内精品视频一区二区三区| 性国裸体高清亚洲| 欧美色图免费看| 天天av天天操| 日韩av三区| 国产亚洲一区二区精品| 91香蕉视频污在线观看| 午夜久久久久| 91大神福利视频在线| 无码人妻精品一区二区50| 蜜臀精品久久久久久蜜臀| 成人xxxx视频| 天堂在线中文网| 欧美激情综合五月色丁香| 久久免费视频2| av在线小说| 欧美三级中文字| 97中文字幕在线观看| 免费一区二区| 久久91精品国产| 在线精品免费视| 国产一区二区精品在线观看| 久久66热这里只有精品| 亚洲精品欧美日韩专区| 九九这里只有精品视频| 亚洲精品看片| 成人激情视频在线| 日本天堂影院在线视频| 自拍偷拍亚洲综合| 国产精品沙发午睡系列| 精品国产麻豆| 在线播放亚洲激情| 九一国产在线观看| 国产成人亚洲综合a∨婷婷图片| 欧美日韩综合精品| 女人黄色免费在线观看| 欧美午夜片在线看| 久久久久麻豆v国产精华液好用吗| 国产精品99视频| 日韩av免费在线观看| www.久久久久久| 国产精品―色哟哟| 国产综合免费视频| 亚洲图色一区二区三区| 中文字幕日韩欧美| 免费av网站在线| 成人激情av网| 欧美少妇在线观看| 国产日本久久| 亚洲视频在线观看网站| 成人精品免费在线观看| 丁香六月久久综合狠狠色| 一区二区欧美日韩| 成人做爰免费视频免费看| 国产视频在线观看一区二区| 国产在线视频你懂的| 国产高清视频一区| 中国一级大黄大黄大色毛片| 国产一区高清| 一区二区欧美亚洲| 国产精品久久久久久人| 91老师国产黑色丝袜在线| 福利在线一区二区| 成人高潮视频| 国语自产精品视频在线看| 亚洲精品97久久中文字幕无码| 综合电影一区二区三区 | 日韩激情一区二区三区| 国产精品一品视频| 裸体裸乳免费看| 国产亚洲观看| 毛片精品免费在线观看| 国产普通话bbwbbwbbw| 国产精品护士白丝一区av| 久久99999| 国产日产一区| 国产精品免费福利| 日本视频在线播放| 欧美一区二区三区啪啪| 欧美xxxx黑人xyx性爽| 国产精品一区一区三区| 国产高清www| 久久狠狠久久| 97国产精品视频人人做人人爱| 老牛影视av牛牛影视av| 亚洲成人手机在线| av2014天堂网| 天堂va蜜桃一区二区三区漫画版 | 美女伦理水蜜桃4| 亚洲理论在线| 欧美一区二区三区在线免费观看| 3d欧美精品动漫xxxx无尽| 日韩中文字幕在线免费观看| a级片在线播放| 亚洲福利一二三区| 白白色免费视频| 久久99九九99精品| 污污污污污污www网站免费| 欧美高清视频看片在线观看| 国产99在线|中文| 日本免费中文字幕在线| 日韩欧美色电影| 亚洲熟女综合色一区二区三区| 国产精品网站在线播放| 在线观看免费看片| 亚洲欧美日韩国产一区二区| 亚洲在线色站| 国产精品视频3p| 国产精品嫩草影院一区二区| av理论在线观看| 亚洲毛茸茸少妇高潮呻吟| 在线视频 中文字幕| 一区二区三区四区激情| 波多野结衣办公室33分钟| 久久丁香综合五月国产三级网站| 国产高清www| 欧美先锋资源| 国模一区二区三区私拍视频| 久久精品资源| 97精品国产aⅴ7777| 91激情在线| 亚洲国产99精品国自产| 一级黄色大毛片| 精品久久久久久久久久久久| 国产一区二区三区视频播放| 国产不卡在线播放| 亚洲77777| 国产亚洲欧洲| 人妻激情另类乱人伦人妻| 欧美日韩第一| 国产亚洲一区二区三区在线播放| 久久91视频| 国产成人+综合亚洲+天堂| 欧美家庭影院| 北条麻妃一区二区三区中文字幕| 天天操天天干天天爱| 91麻豆精品国产91久久久久久 | 毛片一区二区三区| 天堂…中文在线最新版在线| 伊人色**天天综合婷婷| 亚洲 日韩 国产第一区| 亚洲va久久| julia一区二区中文久久94| 男人天堂久久| 国产精品国产三级国产aⅴ浪潮 | 色综合天天狠狠| 久久午夜无码鲁丝片| 亚洲色图综合| 日韩欧美国产黄色| 国产一级一片免费播放| 中文字幕一区二区三区四区| 亚洲精品成人无码| 91视频你懂的| 国产+高潮+白浆+无码| 国产精品系列在线播放| 天天操狠狠操夜夜操| 久久天天综合| 九九九九免费视频| 亚洲欧洲综合| 久草免费福利在线| 欧美视频网站| 精品国产一区二区三区无码| 欧美va天堂在线| 正在播放亚洲| 欧美www视频在线观看| 亚洲午夜久久久影院伊人| 欧美美乳视频| 日韩高清在线播放| 国产麻豆一区二区三区精品视频| 久久亚洲免费| 久操国产精品| 天堂一区二区三区| 欧美色图国产精品| 视频一区二区在线| 青青一区二区三区| 一区二区视频在线播放| 爽成人777777婷婷| 少妇熟女一区二区| 亚洲女同另类| 欧美日韩中文字幕在线播放| 欧美色123| 毛片在线播放视频| 午夜亚洲精品| 亚洲老女人av| 国产剧情一区二区| 精品人妻一区二区免费| www.在线成人| 色婷婷av777| 中文文精品字幕一区二区| 人妻无码一区二区三区免费| 亚洲日本欧美天堂| 国产精品成人aaaa在线| 精品久久久久久久久久久久久| 超碰在线观看91| 欧美日韩国产a| 亚洲精品久久久久avwww潮水| 亚洲精品成人免费| 国产综合在线观看| 精品国产拍在线观看| 免费网站在线观看人| 69av在线播放| 日韩国产大片| 国产精品久久国产精品| 欧美精品中文| 在线观看成人一级片| 国产精品第十页| 超碰网在线观看| 韩日欧美一区二区三区| 69亚洲乱人伦| 中文字幕av一区二区三区免费看| 91成人福利视频| 国产va在线视频| 久久久av一区| av免费不卡| 成人黄色片网站| 欧美wwwwww| 中文字幕剧情在线观看一区| 在线看片一区| 亚洲一级片av| 久久男人中文字幕资源站| 日韩在线中文字幕视频| 色综合久久中文字幕综合网| 国产三级漂亮女教师| 亚洲乱码一区av黑人高潮| dj大片免费在线观看| 青青草原成人在线视频| 亚洲网址在线观看| 亚洲国产一区二区在线| 亚洲精品裸体| 三大队在线观看| 中文字幕+乱码+中文字幕一区| 日韩手机在线观看| 欧美一区国产二区| yiren22综合网成人| 98精品国产高清在线xxxx天堂| 青娱乐极品盛宴一区二区| 久久人人九九| 好看不卡的中文字幕| 日日干夜夜操s8| 久久婷婷综合激情| 国产网站在线看| 日韩一区二区免费在线电影| 中文字幕在线视频区| 欧洲精品久久久| www.久久东京| 欧美一级爱爱视频| 国产自产2019最新不卡| 99在线视频免费| 日本道免费精品一区二区三区| 欧美天堂在线视频| 毛片精品免费在线观看| 99久久999| 中文字幕久久一区| 精品一区二区精品| 亚洲一级黄色录像| 欧美亚洲一区三区| 国产无套粉嫩白浆在线2022年| 欧美一级黄色网| 同性恋视频一区| 18岁网站在线观看| 99精品在线观看视频| 国产午夜视频在线| 精品国产乱子伦一区| 欧美aaaaaaa| 国产精品香蕉视屏| 日韩午夜激情| yy6080午夜| 欧美日韩一区二区在线| 深夜影院在线观看| 欧美重口另类videos人妖| 亚瑟一区二区三区四区| 国产淫片免费看| 91色九色蝌蚪| 波多野结衣mp4| 在线观看视频亚洲| 欧美黄色成人| 91九色国产ts另类人妖| 国产成人综合亚洲91猫咪| 欧美国产日韩综合| 欧美精品一区视频| 亚洲黄色免费看| 日韩欧美精品一区二区| 日本电影在线观看| 欧美一区二区三区婷婷月色| 日本不卡不卡| 97在线中文字幕| 亚洲黄色免费| 无码h肉动漫在线观看| 欧美午夜精品一区二区蜜桃| 亚洲搞黄视频| 51午夜精品| 国产日韩欧美一区二区三区在线观看 | 国产又粗又硬又长又爽| 欧美成人福利视频| 蜜臀久久精品| 台湾成人av| 岛国精品在线观看| 高清乱码免费看污| 久久精品一本久久99精品| 亚洲天堂av资源在线观看| 日韩精品视频久久| 国产精品麻豆久久久| 国产av一区二区三区| 91av视频在线免费观看| 成人毛片在线| 年下总裁被打光屁股sp| 色丁香久综合在线久综合在线观看| av在线播放av| 国产精品对白刺激久久久| 鲁大师影院一区二区三区| 黄视频网站免费看| 精品小视频在线| 精品三级久久久| 女人天堂av手机在线| 国产精品不卡在线观看| 日本精品久久久久| 国产美女扒开尿口久久久| 亚洲第一在线| 国产免费嫩草影院| 日韩精品免费综合视频在线播放| 伊人久久精品| 日韩人妻精品无码一区二区三区| 亚洲同性gay激情无套| 人人九九精品| 国产成人免费观看|