3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

angular2的模板语法

發布時間:2025/4/9 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 angular2的模板语法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Angular 應用管理著用戶之所見和所為,并通過 Component 類的實例(組件)和面向用戶的模板來與用戶交互。

從使用模型-視圖-控制器 (MVC) 或模型-視圖-視圖模型 (MVVM) 的經驗中,很多開發人員都熟悉了組件和模板這兩個概念。 在 Angular 中,組件扮演著控制器或視圖模型的角色,模板則扮演視圖的角色。

來看看寫視圖的模板都需要什么。本章將覆蓋模板語法中的下列基本元素

HTML 是 Angular 模板的語言。快速起步應用的模板是純 HTML 的:

<h1>Hello Angular</h1>

幾乎所有的 HTML 語法都是有效的模板語法。但值得注意的例外是<script>元素,它被禁用了,以阻止腳本注入攻擊的風險。(實際上,<script>只是被忽略了。)

有些合法的 HTML 被用在模板中是沒有意義的。<html>、<body>和<base>元素這個舞臺上中并沒有扮演有用的角色。基本上所有其它的元素都被一樣使用。

可以通過組件和指令來擴展模板中的 HTML 詞匯。它們看上去就是新元素和屬性。接下來將學習如何通過數據綁定來動態獲取/設置 DOM(文檔對象模型)的值。

數據綁定的第一種形式 —— 插值表達式 —— 展示了模板的 HTML 可以有多豐富。

插值表達式

在以前的 Angular 教程中,我們遇到過由雙花括號括起來的插值表達式,{{和}}。

<p>My current hero is {{currentHero.firstName}}</p>

插值表達式可以把計算后的字符串插入到 HTML 元素標簽內的文本或對標簽的屬性進行賦值。

<h3>{{title}}<img src="{{heroImageUrl}}" style="height:30px"> </h3>

在括號之間的“素材”,通常是組件屬性的名字。Angular 會用組件中相應屬性的字符串值,替換這個名字。 上例中,Angular 計算title和heroImageUrl屬性的值,并把它們填在空白處。 首先顯示粗體的應用標題,然后顯示英雄的圖片。

一般來說,括號間的素材是一個模板表達式,Angular 先對它求值,再把它轉換成字符串。 下列插值表達式通過把括號中的兩個數字相加說明

<!-- "The sum of 1 + 1 is 2" --> <p>The sum of 1 + 1 is {{1 + 1}}</p>

這個表達式可以調用宿主組件的方法,就像下面用的getVal():

<!-- "The sum of 1 + 1 is not 4" --> <p>The sum of 1 + 1 is not {{1 + 1 + getVal()}}</p>

Angular 對所有雙花括號中的表達式求值,把求值的結果轉換成字符串,并把它們跟相鄰的字符串字面量連接起來。最后,把這個組合出來的插值結果賦給元素或指令的屬性

表面上看,我們在元素標簽之間插入了結果和對標簽的屬性進行了賦值。 這樣思考起來很方便,并且這個誤解很少給我們帶來麻煩。 但嚴格來講,這是不對的。插值表達式是一個特殊的語法,Angular 把它轉換成了屬性綁定,后面將會解釋這一點。

講解屬性綁定之前,先深入了解一下模板表達式和模板語句。

模板表達式

模板表達式產生一個值。 Angular 執行這個表達式,并把它賦值給綁定目標的屬性,這個綁定目標可能是 HTML 元素、組件或指令。

當我們寫{{1 + 1}}時,是往插值表達式的括號中放進了一個模板表達式。 在屬性綁定中會再次看到模板表達式,它出現在=右側的引號中,看起來像這樣:[property]="expression"。

編寫模板表達式所用的語言看起來很像 JavaScript。 很多 JavaScript 表達式也是合法的模板表達式,但不是全部。

JavaScript 中那些具有或可能引發副作用的表達式是被禁止的,包括:

  • 賦值 (=,?+=,?-=, ...)

  • new運算符

  • 使用;或,的鏈式表達式

  • 自增或自減操作符 (++和--)

和 JavaScript語 法的其它顯著不同包括:

  • 不支持位運算|和&

  • 具有新的模板表達式運算符,比如|和?.

表達式上下文

也許更讓人吃驚的是,模板表達式不能引用全局命名空間中的任何東西。 不能引用window或document。不能調用console.log或Math.max。 它們被局限于只能訪問來自表達式上下文中的成員。

典型的表達式上下文就是這個組件實例,它是各種綁定值的來源。

當看到包裹在雙花括號中的?title?({{title}}) 時,我們就知道title是這個數據綁定組件中的一個屬性。 當看到[disabled]="isUnchanged"中的?isUnchanged?時,我們就知道正在引用該組件的isUnchanged屬性。

通常,組件本身就是表達式的上下文,這種情況下,模板表達式會引用那個組件。

表達式的上下文可以包括組件之外的對象。?模板引用變量就是備選的上下文對象之一。

?

表達式指南

模板表達式能成就或毀掉一個應用。請遵循下列指南:

  • 沒有可見的副作用

  • 執行迅速

  • 非常簡單

  • 冪等性

超出上面指南外的情況應該只出現在那些你確信自己已經徹底理解的特定場景中。

沒有可見的副作用

模板表達式除了目標屬性的值以外,不應該改變應用的任何狀態。

這條規則是 Angular “單向數據流”策略的基礎。 永遠不用擔心讀取組件值可能改變另外的顯示值。 在一次單獨的渲染過程中,視圖應該總是穩定的。

執行迅速

Angular 執行模板表達式比我們想象的頻繁。 它們可能在每一次按鍵或鼠標移動后被調用。 表達式應該快速結束,否則用戶就會感到拖沓,特別是在較慢的設備上。 當計算代價較高時,應該考慮緩存那些從其它值計算得出的值。

非常簡單

雖然可以寫出相當復雜的模板表達式,但不要那么去寫。

常規是屬性名或方法調用。偶爾的邏輯取反 (!) 也還湊合。 其它情況下,應在組件中實現應用和業務邏輯,使開發和測試變得更容易。

冪等性

最好使用冪等的表達式,因為它沒有副作用,并且能提升 Angular 變更檢測的性能。

在 Angular 的術語中,冪等的表達式應該總是返回完全相同的東西,直到某個依賴值發生改變。

在單獨的一次事件循環中,被依賴的值不應該改變。 如果冪等的表達式返回一個字符串或數字,連續調用它兩次,也應該返回相同的字符串或數字。 如果冪等的表達式返回一個對象(包括Date或Array),連續調用它兩次,也應該返回同一個對象的引用。

模板語句

模板語句用來響應由綁定目標(如 HTML 元素、組件或指令)觸發的事件

模板語句將在事件綁定一節看到,它出現在=號右側的引號中,就像這樣:(event)="statement"。

模板語句有副作用。 這正是用戶輸入更新應用狀態的方式。 否則,響應事件就沒有什么意義了。

響應事件是 Angular 中“單向數據流”的另一面。 在一次事件循環中,可以隨意改變任何地方的任何東西。

和模板表達式一樣,模板語句使用的語言也像 JavaScript。 模板語句解析器和模板表達式解析器有所不同,特別之處在于它支持基本賦值 (=) 和表達式鏈 (;和,)。

然而,某些 JavaScript 語法仍然是不允許的:

  • new運算符

  • 自增和自減運算符:++和--

  • 操作并賦值,例如+=和-=

  • 位操作符|和&

  • 模板表達式運算符

語句上下文

和表達式中一樣,語句只能引用語句上下文中 —— 通常是正在綁定事件的那個組件實例

模板語句無法引用全局命名空間的任何東西。它們不能引用window或者document, 不能調用console.log或者Math.max。

(click)="onSave()"中的?onSave?就是數據綁定組件實例中的方法。

語句上下文可以包含組件之外的對象。?模板引用對象就是備選上下文對象之一。 在事件綁定語句中,經常會看到被保留的$event符號,它代表觸發事件的“消息”或“有效載荷”。

語句指南

和表達式一樣,避免寫復雜的模板語句。 常規是函數調用或者屬性賦值。

現在,對模板表達式和語句有了一點感覺了吧。 除插值表達式外,還有各種各樣的數據綁定語法,是學習它們是時候了。

?

綁定語法:概覽

數據綁定是一種機制,用來協調用戶所見和應用數據。 雖然我們能往 HTML 推送值或者從 HTML 拉取值, 但如果把這些瑣事交給數據綁定框架處理, 應用會更容易編寫、閱讀和維護。 只要簡單地在綁定源和目標 HTML 元素之間聲明綁定,框架就會完成這項工作。

Angular 提供了各種各樣的數據綁定,本章將逐一討論。 首先,從高層視角來看看 Angular 數據綁定和它的語法。

根據數據流的方向,可以把所有綁定歸為三類。 每一類都有它獨特的語法:

數據方向

語法

綁定類型

單向

從數據源

到視圖目標

COPY CODE {{expression}} [target] = "expression" bind-target = "expression"

插值表達式

Property

Attribute

樣式

單向

從視圖目標

到數據源

COPY CODE (target) = "statement" on-target = "statement"

事件

雙向

COPY CODE [(target)] = "expression" bindon-target = "expression"

雙向

譯注:由于 HTML attribute 和 DOM property 在中文中都被翻譯成了“屬性”,無法區分, 而接下來的部分重點是對它們進行比較。

我們無法改變歷史,因此,在本章的翻譯中,保留了它們的英文形式,不加翻譯,以免混淆。 本章中,如果提到“屬性”的地方,一定是指 property,因為在 Angular 中,實際上很少涉及 attribute。

但在其它章節中,為簡單起見,凡是能通過上下文明顯區分開的,就仍統一譯為“屬性”, 區分不明顯的,會加注英文。

除了插值表達式之外的綁定類型,在等號左邊是目標名, 無論是包在括號中 ([]、()) 還是用前綴形式 (bind-、on-、bindon-) 。

什么是“目標”?在回答這個問題之前,我們必須先挑戰下自我,嘗試用另一種方式來審視模板中的 HTML。

新的思維模型

數據綁定的威力和允許用自定義標記擴展 HTML 詞匯的能力,容易誤導我們把模板 HTML 當成?HTML+。

也對,它是?HTML+。 但它也跟我們熟悉的 HTML 有著顯著的不同。 我們需要一種新的思維模型。

在正常的 HTML 開發過程中,我們使用 HTML 元素創建視覺結構, 通過把字符串常量設置到元素的 attribute 來修改那些元素。

<div class="special">Mental Model</div> <img src="images/hero.png"> <button disabled>Save</button>

在 Angular 模板中,我們仍使用同樣的方式來創建結構和初始化 attribute 值。

然后,用封裝了 HTML 的組件創建新元素,并把它們當作原生 HTML 元素在模板中使用。

<!-- Normal HTML --> <div class="special">Mental Model</div> <!-- Wow! A new element! --> <hero-detail></hero-detail>

這就是HTML+。

現在開始學習數據綁定。我們碰到的第一種數據綁定看起來是這樣的:

<!-- Bind button disabled state to `isUnchanged` property --> <button [disabled]="isUnchanged">Save</button>

過會兒再認識那個怪異的方括號記法。直覺告訴我們,我們正在綁定按鈕的disabled?attribute。 并把它設置為組件的isUnchanged屬性的當前值。

但我們的直覺是錯的!日常的 HTML 思維模式在誤導我們。 實際上,一旦開始數據綁定,就不再跟 HTML attribute 打交道了。 這里不是設置 attribute,而是設置 DOM 元素、組件和指令的 property。

HTML attribute 與 DOM property 的對比

要想理解 Angular 綁定如何工作,重點是搞清 HTML attribute 和 DOM property 之間的區別。

attribute 是由 HTML 定義的。property 是由 DOM (Document Object Model) 定義的。

  • 少量 HTML attribute 和 property 之間有著 1:1 的映射,如id。

  • 有些 HTML attribute 沒有對應的 property,如colspan。

  • 有些 DOM property 沒有對應的 attribute,如textContent。

  • 大量 HTML attribute看起來映射到了property…… 但卻不像我們想的那樣!

最后一類尤其讓人困惑…… 除非我們能理解這個普遍原則:

attribute?初始化?DOM property,然后它們的任務就完成了。property 的值可以改變;attribute 的值不能改變。

例如,當瀏覽器渲染<input type="text" value="Bob">時,它將創建相應 DOM 節點, 其value?property 被初始化為?“Bob”。

當用戶在輸入框中輸入 “Sally” 時,DOM 元素的value?property?變成了 “Sally”。 但是這個 HTML?value?attribute?保持不變。如果我們讀取 input 元素的 attribute,就會發現確實沒變:?input.getAttribute('value') // 返回 "Bob"。

HTML attribute?value指定了初始值;DOM?value?property 是當前值。

disabled?attribute 是另一個古怪的例子。按鈕的disabled?property?是false,因為默認情況下按鈕是可用的。 當我們添加disabledattribute?時,只要它出現了按鈕的disabled?property?就初始化為true,于是按鈕就被禁用了。

添加或刪除disabled?attribute會禁用或啟用這個按鈕。但?attribute?的值無關緊要,這就是我們為什么沒法通過?<button disabled="false">仍被禁用</button>這種寫法來啟用按鈕。

設置按鈕的disabled?property(如,通過 Angular 綁定)可以禁用或啟用這個按鈕。 這就是?property?的價值。

就算名字相同,HTML attribute 和 DOM property 也不是同一樣東西。

這句話很重要,得再強調一次:

模板綁定是通過?property?和事件來工作的,而不是?attribute。

沒有 ATTRIBUTE 的世界

在 Angular 的世界中,attribute 唯一的作用是用來初始化元素和指令的狀態。 當進行數據綁定時,只是在與元素和指令的 property 和事件打交道,而 attribute 就完全靠邊站了。

把這個思維模型牢牢的印在腦子里,接下來,學習什么是綁定目標。

綁定目標

數據綁定的目標是 DOM 中的某些東西。 這個目標可能是(元素 | 組件 | 指令的)property、(元素 | 組件 | 指令的)事件,或(極少數情況下) attribute 名。 下面是的匯總表:

綁定類型

目標

范例

Property

元素的 property

組件的 property

指令的 property

COPY CODE <img [src] = "heroImageUrl"> <hero-detail [hero]="currentHero"></hero-detail> <div [ngClass] = "{selected: isSelected}"></div>

事件

元素的事件

組件的事件

指令的事件

COPY CODE <button (click) = "onSave()">Save</button> <hero-detail (deleteRequest)="deleteHero()"></hero-detail> <div (myClick)="clicked=$event">click me</div>

雙向

事件與 property

COPY CODE <input [(ngModel)]="heroName">
Attribute

attribute(例外情況)

COPY CODE <button [attr.aria-label]="help">help</button>

CSS 類

class?property

COPY CODE <div [class.special]="isSpecial">Special</div>

樣式

style?property

COPY CODE <button [style.color] = "isSpecial ? 'red' : 'green'">

讓我們從結構性云層中走出來,看看每種綁定類型的具體情況。

屬性 (property) 綁定

當要把視圖元素的屬性 (property) 設置為模板表達式時,就要寫模板的屬性 (property) 綁定

最常用的屬性綁定是把元素屬性設置為組件屬性的值。 下面這個例子中,image 元素的src屬性會被綁定到組件的heroImageUrl屬性上:

<img [src]="heroImageUrl">

另一個例子是當組件說它isUnchanged(未改變)時禁用按鈕:

<button [disabled]="isUnchanged">Cancel is disabled</button>

另一個例子是設置指令的屬性:

<div [ngClass]="classes">[ngClass] binding to the classes property</div>

還有另一個例子是設置自定義組件的模型屬性(這是父子組件之間通訊的重要途徑):

<hero-detail [hero]="currentHero"></hero-detail>

單向輸入

人們經常把屬性綁定描述成單向數據綁定,因為值的流動是單向的,從組件的數據屬性流動到目標元素的屬性。

不能使用屬性綁定來從目標元素拉取值,也不能綁定到目標元素的屬性來讀取它。只能設置它。

也不能使用屬性 綁定 來調用目標元素上的方法。

如果這個元素觸發了事件,可以通過事件綁定來監聽它們。

如果必須讀取目標元素上的屬性或調用它的某個方法,得用另一種技術。 參見 API 參考手冊中的?ViewChild?和?ContentChild。

綁定目標

包裹在方括號中的元素屬性名標記著目標屬性。下列代碼中的目標屬性是 image 元素的src屬性。

<img [src]="heroImageUrl">

有些人喜歡用bind-前綴的可選形式,并稱之為規范形式:

<img bind-src="heroImageUrl">

目標的名字總是 property 的名字。即使它看起來和別的名字一樣。 看到src時,可能會把它當做 attribute。不!它不是!它是 image 元素的 property 名。

元素屬性可能是最常見的綁定目標,但 Angular 會先去看這個名字是否是某個已知指令的屬性名,就像下面的例子中一樣:

<div [ngClass]="classes">[ngClass] binding to the classes property</div>

嚴格來說,Angular 正在匹配指令的輸入屬性的名字。 這個名字是指令的inputs數組中所列的名字,或者是帶有@Input()裝飾器的屬性。 這些輸入屬性被映射為指令自己的屬性。

如果名字沒有匹配上已知指令或元素的屬性,Angular 就會報告“未知指令”的錯誤。

返回恰當的類型

模板表達式應該返回目標屬性所需類型的值。 如果目標屬性想要個字符串,就返回字符串。 如果目標屬性想要個數字,就返回數字。 如果目標屬性想要個對象,就返回對象。

HeroDetail組件的hero屬性想要一個Hero對象,那就在屬性綁定中精確地給它一個Hero對象:

<hero-detail [hero]="currentHero"></hero-detail>

別忘了方括號

方括號告訴 Angular 要計算模板表達式。 如果忘了加方括號,Angular 會把這個表達式當做字符串常量看待,并用該字符串來初始化目標屬性。 它不會計算這個字符串。

不要出現這樣的失誤:

<!-- ERROR: HeroDetailComponent.hero expects aHero object, not the string "currentHero" --><hero-detail hero="currentHero"></hero-detail>

一次性字符串初始化

當下列條件滿足時,應該省略括號:

  • 目標屬性接受字符串值。

  • 字符串是個固定值,可以直接合并到模塊中。

  • 這個初始值永不改變。

我們經常這樣在標準 HTML 中用這種方式初始化 attribute,這種方式也可以用在初始化指令和組件的屬性。 下面這個例子把HeroDetailComponent的prefix屬性初始化為固定的字符串,而不是模板表達式。Angular 設置它,然后忘記它。

<hero-detail prefix="You are my" [hero]="currentHero"></hero-detail>

作為對比,[hero]綁定是組件的currentHero屬性的活綁定,它會一直隨著更新。

屬性綁定還是插值表達式?

我們通常得在插值表達式和屬性綁定之間做出選擇。 下列這幾對綁定做的事情完全相同:

<p><img src="{{heroImageUrl}}"> is the <i>interpolated</i> image.</p> <p><img [src]="heroImageUrl"> is the <i>property bound</i> image.</p> <p><span>"{{title}}" is the <i>interpolated</i> title.</span></p> <p>"<span [innerHTML]="title"></span>" is the <i>property bound</i> title.</p>

在多數情況下,插值表達式是更方便的備選項。 實際上,在渲染視圖之前,Angular 把這些插值表達式翻譯成相應的屬性綁定。

當要渲染的數據類型是字符串時,沒有技術上的理由證明哪種形式更好。 我們傾向于可讀性,所以傾向于插值表達式。 建議建立代碼風格規則,選擇一種形式, 這樣,既遵循了規則,又能讓手頭的任務做起來更自然。

但數據類型不是字符串時,就必須使用屬性綁定了。

內容安全

假設下面的惡毒內容

evilTitle = 'Template <script>alert("evil never sleeps")</script>Syntax';

幸運的是,Angular 數據綁定對危險 HTML 有防備。 在顯示它們之前,它對內容先進行消毒。 不管是插值表達式還是屬性綁定,都不會允許帶有 script 標簽的 HTML 泄漏到瀏覽器中。

<p><span>"{{evilTitle}}" is the <i>interpolated</i> evil title.</span></p> <p>"<span [innerHTML]="evilTitle"></span>" is the <i>property bound</i> evil title.</p>

插值表達式處理 script 標簽與屬性綁定有所不同,但是二者都只渲染沒有危害的內容。

?

attribute、class 和 style 綁定

模板語法為那些不太適合使用屬性綁定的場景提供了專門的單向數據綁定形式。

attribute 綁定

可以通過attribute 綁定來直接設置 attribute 的值。

這是“綁定到目標屬性 (property)”這條規則中唯一的例外。這是唯一的能創建和設置 attribute 的綁定形式。

本章中,通篇都在說通過屬性綁定來設置元素的屬性總是好于用字符串設置 attribute。為什么 Angular 還提供了 attribute 綁定呢?

因為當元素沒有屬性可綁的時候,就必須使用 attribute 綁定。

考慮?ARIA,?SVG?和 table 中的 colspan/rowspan 等 attribute。 它們是純粹的 attribute,沒有對應的屬性可供綁定。

如果想寫出類似下面這樣的東西,現狀會令我們痛苦:

<tr><td colspan="{{1 + 1}}">Three-Four</td></tr>

會得到這個錯誤:

Template parse errors: Can't bind to 'colspan' since it isn't a known native property模板解析錯誤:不能綁定到 'colspan',因為它不是已知的原生屬性

正如提示中所說,<td>元素沒有colspan屬性。 但是插值表達式和屬性綁定只能設置屬性,不能設置 attribute。

我們需要 attribute 綁定來創建和綁定到這樣的 attribute。

attribute 綁定的語法與屬性綁定類似。 但方括號中的部分不是元素的屬性名,而是由attr前綴,一個點 (.) 和 attribute 的名字組成。 可以通過值為字符串的表達式來設置 attribute 的值。

這里把[attr.colspan]綁定到一個計算值:

<table border=1> <!-- expression calculates colspan=2 --> <tr><td [attr.colspan]="1 + 1">One-Two</td></tr> <!-- ERROR: There is no `colspan` property to set! <tr><td colspan="{{1 + 1}}">Three-Four</td></tr> --> <tr><td>Five</td><td>Six</td></tr> </table>

這里是表格渲染出來的樣子:

One-Two
FiveSix

attribute 綁定的主要用例之一是設置 ARIA attribute(譯注:ARIA指可訪問性,用于給殘障人士訪問互聯網提供便利), 就像這個例子中一樣:

<!-- create and set an aria attribute for assistive technology --> <button [attr.aria-label]="actionName">{{actionName}} with Aria</button>

CSS 類綁定

借助?CSS 類綁定,可以從元素的class?attribute 上添加和移除 CSS 類名。

CSS 類綁定綁定的語法與屬性綁定類似。 但方括號中的部分不是元素的屬性名,而是由class前綴,一個點 (.)和 CSS 類的名字組成, 其中后兩部分是可選的。形如:[class.class-name]。

下列例子示范了如何通過 CSS 類綁定來添加和移除應用的 "special" 類。不用綁定直接設置 attribute 時是這樣的:

<!-- standard class attribute setting --> <div class="bad curly special">Bad curly special</div>

可以把它改寫為綁定到所需 CSS 類名的綁定;這是一個或者全有或者全無的替換型綁定。 (譯注:即當 badCurly 有值時 class 這個 attribute 設置的內容會被完全覆蓋)

<!-- reset/override all class names with a binding --> <div class="bad curly special" [class]="badCurly">Bad curly</div>

最后,可以綁定到特定的類名。 當模板表達式的求值結果是真值時,Angular 會添加這個類,反之則移除它。

<!-- toggle the "special" class on/off with a property --> <div [class.special]="isSpecial">The class binding is special</div> <!-- binding to `class.special` trumps the class attribute --> <div class="special" [class.special]="!isSpecial">This one is not so special</div>

雖然這是切換單一類名的好辦法,但我們通常更喜歡使用?NgClass指令?來同時管理多個類名。

樣式綁定

通過樣式綁定,可以設置內聯樣式。

樣式綁定的語法與屬性綁定類似。 但方括號中的部分不是元素的屬性名,而由style前綴,一個點 (.)和 CSS 樣式的屬性名組成。 形如:[style.style-property]。

<button [style.color] = "isSpecial ? 'red': 'green'">Red</button> <button [style.background-color]="canSave ? 'cyan': 'grey'" >Save</button>

有些樣式綁定中的樣式帶有單位。在這里,以根據條件用 “em” 和 “%” 來設置字體大小的單位。

<button [style.font-size.em]="isSpecial ? 3 : 1" >Big</button> <button [style.font-size.%]="!isSpecial ? 150 : 50" >Small</button>

雖然這是設置單一樣式的好辦法,但我們通常更喜歡使用?NgStyle指令?來同時設置多個內聯樣式。

注意,樣式屬性命名方法可以用中線命名法,像上面的一樣 也可以用駝峰式命名法,如fontSize。

事件綁定

前面遇到的綁定的數據流都是單向的:從組件到元素

用戶不會只盯著屏幕看。它們會在輸入框中輸入文本。它們會從列表中選取條目。 它們會點擊按鈕。這類用戶動作可能導致反向的數據流:從元素到組件。

知道用戶動作的唯一方式是監聽某些事件,如按鍵、鼠標移動、點擊和觸摸屏幕。 可以通過 Angular 事件綁定來聲明對哪些用戶動作感興趣。

事件綁定語法由等號左側帶圓括號的目標事件和右側引號中的模板語句組成。 下面事件綁定監聽按鈕的點擊事件。每當點擊發生時,都會調用組件的onSave()方法。

<button (click)="onSave()">Save</button>

目標事件

圓括號中的名稱?—— 比如(click)?—— 標記出目標事件。在下面例子中,目標是按鈕的 click 事件。

<button (click)="onSave()">Save</button>

有些人更喜歡帶on-前綴的備選形式,稱之為規范形式

<button on-click="onSave()">On Save</button>

元素事件可能是更常見的目標,但 Angular 會先看這個名字是否能匹配上已知指令的事件屬性,就像下面這個例子:

<!-- `myClick` is an event on the custom `ClickDirective` --> <div (myClick)="clickMessage=$event">click with myClick</div>

更多關于該myClick指令的解釋,見給輸入/輸出屬性起別名。

如果這個名字沒能匹配到元素事件或已知指令的輸出屬性,Angular 就會報“未知指令”錯誤。

$event?和事件處理語句

在事件綁定中,Angular 會為目標事件設置事件處理器。

當事件發生時,這個處理器會執行模板語句。 典型的模板語句通常涉及到響應事件執行動作的接收器,例如從 HTML 控件中取得值,并存入模型。

綁定會通過名叫$event的事件對象傳遞關于此事件的信息(包括數據值)。

事件對象的形態取決于目標事件。如果目標事件是原生 DOM 元素事件,?$event就是?DOM事件對象,它有像target和target.value這樣的屬性。

考慮這個范例:

<input [value]="currentHero.firstName" (input)="currentHero.firstName=$event.target.value" >

上面的代碼在把輸入框的value屬性綁定到firstName屬性。 要監聽對值的修改,代碼綁定到輸入框的input事件。 當用戶造成更改時,input事件被觸發,并在包含了 DOM 事件對象 ($event) 的上下文中執行這條語句。

要更新firstName屬性,就要通過路徑$event.target.value來獲取更改后的值。

如果事件屬于指令(回想一下,組件是指令的一種),那么$event具體是什么由指令決定。

?

使用?EventEmitter?實現自定義事件

通常,指令使用 Angular?EventEmitter?來觸發自定義事件。 指令創建一個EventEmitter實例,并且把它作為屬性暴露出來。 指令調用EventEmitter.emit(payload)來觸發事件,可以傳入任何東西作為消息載荷。 父指令通過綁定到這個屬性來監聽事件,并通過$event對象來訪問載荷。

假設HeroDetailComponent用于顯示英雄的信息,并響應用戶的動作。 雖然HeroDetailComponent包含刪除按鈕,但它自己并不知道該如何刪除這個英雄。 最好的做法是觸發事件來報告“刪除用戶”的請求。

下面的代碼節選自HeroDetailComponent:

src/app/hero-detail.component.ts (template)

template: ` <div><img src="{{heroImageUrl}}"><span [style.text-decoration]="lineThrough">{{prefix}} {{hero?.fullName}}</span><button (click)="delete()">Delete</button> </div>`

src/app/hero-detail.component.ts (deleteRequest)

// This component make a request but it can't actually delete a hero. deleteRequest = new EventEmitter<Hero>(); delete() { this.deleteRequest.emit(this.hero); }

組件定義了deleteRequest屬性,它是EventEmitter實例。 當用戶點擊刪除時,組件會調用delete()方法,讓EventEmitter發出一個Hero對象。

現在,假設有個宿主的父組件,它綁定了HeroDetailComponent的deleteRequest事件。

<hero-detail (deleteRequest)="deleteHero($event)" [hero]="currentHero"></hero-detail>

當deleteRequest事件觸發時,Angular 調用父組件的deleteHero方法, 在$event變量中傳入要刪除的英雄(來自HeroDetail)。

模板語句有副作用

deleteHero方法有副作用:它刪除了一個英雄。 模板語句的副作用不僅沒問題,反而正是所期望的。

刪除這個英雄會更新模型,還可能觸發其它修改,包括向遠端服務器的查詢和保存。 這些變更通過系統進行擴散,并最終顯示到當前以及其它視圖中。

雙向數據綁定

我們經常需要顯示數據屬性,并在用戶作出更改時更新該屬性。

在元素層面上,既要設置元素屬性,又要監聽元素事件變化。

Angular 為此提供一種特殊的雙向數據綁定語法:[(x)]。?[(x)]語法結合了屬性綁定的方括號[x]和事件綁定的圓括號(x)。

[( )] = 盒子里的香蕉

想象盒子里的香蕉來記住方括號套圓括號。

當一個元素擁有可以設置的屬性x和對應的事件xChange時,解釋[(x)]語法就容易多了。 下面的SizerComponent符合這個模式。它有size屬性和伴隨的sizeChange事件:

src/app/sizer.component.ts

  • import { Component, EventEmitter, Input, Output } from '@angular/core';
  • @Component({
  • selector: 'my-sizer',
  • template: `
  • <div>
  • <button (click)="dec()" title="smaller">-</button>
  • <button (click)="inc()" title="bigger">+</button>
  • <label [style.font-size.px]="size">FontSize: {{size}}px</label>
  • </div>`
  • })
  • export class SizerComponent {
  • @Input() size: number | string;
  • @Output() sizeChange = new EventEmitter<number>();
  • dec() { this.resize(-1); }
  • inc() { this.resize(+1); }
  • resize(delta: number) {
  • this.size = Math.min(40, Math.max(8, +this.size + delta));
  • this.sizeChange.emit(this.size);
  • }
  • }
  • size的初始值是一個輸入值,來自屬性綁定。(譯注:注意size前面的@Input) 點擊按鈕,在最小/最大值范圍限制內增加或者減少size。 然后用調整后的size觸發sizeChange事件。

    下面的例子中,AppComponent.fontSize被雙向綁定到SizerComponent:

    <my-sizer [(size)]="fontSizePx"></my-sizer> <div [style.font-size.px]="fontSizePx">Resizable Text</div>

    SizerComponent.size初始值是AppComponent.fontSizePx。 點擊按鈕時,通過雙向綁定更新AppComponent.fontSizePx。 被修改的AppComponent.fontSizePx通過樣式綁定,改變文本的顯示大小。 試一下在線例子。

    雙向綁定語法實際上是屬性綁定和事件綁定的語法糖。 Angular將SizerComponent的綁定分解成這樣:

    <my-sizer [size]="fontSizePx" (sizeChange)="fontSizePx=$event"></my-sizer>

    $event變量包含了SizerComponent.sizeChange事件的荷載。 當用戶點擊按鈕時,Angular 將$event賦值給AppComponent.fontSizePx。

    很清楚,比起單獨綁定屬性和事件,雙向數據綁定語法顯得非常方便。

    我們希望能在像<input>和<select>這樣的 HTML 元素上使用雙向數據綁定。 可惜,原生 HTML 元素不遵循x值和xChange事件的模式。

    幸運的是,Angular 以?NgModel?指令為橋梁,允許在表單元素上使用雙向數據綁定。

    使用 NgModel 進行雙向數據綁定

    當開發數據輸入表單時,我們經常希望能顯示數據屬性,并在用戶做出變更時更新該屬性。

    使用NgModel指令進行雙向數據綁定讓它變得更加容易。請看下例:

    <input [(ngModel)]="currentHero.firstName"> 要使用 NGMODEL,必須導入 FORMSMODULE

    在使用ngModel做雙向數據綁定之前,得先導入FormsModule, 把它加入 Angular 模塊的imports列表。 學習關于FormsModule和ngModel的更多知識,參見表單。

    下面展示了如何導入FormsModule,讓[(ngModel)]變得可用:

    src/app/app.module.ts (FormsModule import)

    import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { FormsModule } from '@angular/forms'; import { AppComponent } from './app.component'; @NgModule({ imports: [ BrowserModule, FormsModule ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { }

    [(ngModel)]內幕

    回顧一下firstName的綁定,值得注意的是,可以通過分別綁定<input>元素的value屬性和`input事件來實現同樣的效果。

    <input [value]="currentHero.firstName" (input)="currentHero.firstName=$event.target.value" >

    這樣很笨拙。誰能記住哪個元素屬性用于設置,哪個用于發出用戶更改? 如何從輸入框中提取出當前顯示的文本,以便更新數據屬性? 誰想每次都去查一遍?

    ngModel指令通過它自己的ngModel輸入屬性和ngModelChange輸出屬性隱藏了這些繁瑣的細節。

    <input[ngModel]="currentHero.firstName" (ngModelChange)="currentHero.firstName=$event">

    ngModel數據屬性設置元素的 value 屬性,ngModelChange事件屬性監聽元素 value 的變化。

    每種元素的特點各不相同,所以NgModel指令只能在一些特定表單元素上使用,例如輸入文本框,因為它們支持?ControlValueAccessor。

    除非寫一個合適的值訪問器,否則不能把[(ngModel)]用在自定義組件上。 但值訪問器技術超出了本章的范圍。 對于不能控制其 API 的 Angular 組件或者 Web 組件,可能需要為其添加?value accessor。

    但是對于我們能控制的 Angular 組件來說,這么做就完全沒有必要了。 因為可以指定值和事件屬性名字來進行基本的 Angular?雙向綁定語法,完全不用NgModel。

    獨立的ngModel綁定相比直接綁定元素的原生屬性是個改進,但還能做得更好。

    我們不應該提及數據屬性兩次。Angular 應該能捕捉組件的數據屬性,并用一條聲明來設置它——依靠[(ngModel)],可以這么做:

    <input [(ngModel)]="currentHero.firstName">

    [(ngModel)]就是我們所需的一切嗎?有沒有什么理由需要回退到它的展開形式?

    [(ngModel)]語法只能設置一個數據綁定屬性。 如果需要做更多或不同的事情,就得自己用它的展開形式。

    來做點淘氣的事吧,比如強制讓輸入值變成大寫形式:

    <input[ngModel]="currentHero.firstName" (ngModelChange)="setUpperCaseFirstName($event)">

    下面是實際操作中的所有變體形式,包括這個大寫版本:

    ?

    內置指令

    上一版本的 Angular 中包含了超過 70 個內置指令。 社區貢獻了更多,這還沒算為內部應用而創建的無數私有指令。

    在新版的 Angular 中不需要那么多指令。 使用更強大、更富有表現力的 Angular 綁定系統,其實可以達到同樣的效果。 如果能用簡單的綁定達到目的,為什么還要創建指令來處理點擊事件呢?

    <button (click)="onSave()">Save</button>

    我們仍然可以從簡化復雜任務的指令中獲益。 Angular 發布時仍然帶有內置指令,只是沒那么多了。 我們仍會寫自己的指令,只是沒那么多了。

    下面來看一下那些最常用的內置指令。

    NgClass

    我們經常用動態添加或刪除 CSS 類的方式來控制元素如何顯示。 通過綁定到NgClass,可以同時添加或移除多個類。

    CSS 類綁定?是添加或刪除單個類的最佳途徑。

    <!-- toggle the "special" class on/off with a property --> <div [class.special]="isSpecial">The class binding is special</div>

    當想要同時添加或移除多個?CSS 類時,NgClass指令可能是更好的選擇。

    綁定到一個 key:value 形式的控制對象,是應用NgClass的好方式。這個對象中的每個 key 都是一個 CSS 類名,如果它的 value 是true,這個類就會被加上,否則就會被移除。

    下面的組件方法setClasses管理了三個 CSS 類的狀態:

    currentClasses: {}; setCurrentClasses() { // CSS classes: added/removed per current state of component properties this.currentClasses = { saveable: this.canSave, modified: !this.isUnchanged, special: this.isSpecial }; }

    把NgClass屬性綁定到currentClasses,根據它來設置此元素的CSS類:

    <div [ngClass]="currentClasses">This div is initially saveable, unchanged, and special</div>

    你既可以在初始化時調用setCurrentClassess(),也可以在所依賴的屬性變化時調用。

    NgStyle

    我們可以根據組件的狀態動態設置內聯樣式。?NgStyle綁定可以同時設置多個內聯樣式。

    樣式綁定是設置單一樣式值的簡單方式。

    <div [style.font-size]="isSpecial ? 'x-large' : 'smaller'" > This div is x-large. </div>

    如果要同時設置多個內聯樣式,NgStyle指令可能是更好的選擇。

    NgStyle需要綁定到一個 key:value 控制對象。 對象的每個 key 是樣式名,它的 value 是能用于這個樣式的任何值。

    來看看組件的setCurrentStyles方法,它會根據另外三個屬性的狀態把組件的currentStyles屬性設置為一個定義了三個樣式的對象:

    currentStyles: {}; setCurrentStyles() { this.currentStyles = { // CSS styles: set per current state of component properties 'font-style': this.canSave ? 'italic' : 'normal', 'font-weight': !this.isUnchanged ? 'bold' : 'normal', 'font-size': this.isSpecial ? '24px' : '12px' }; }

    把NgStyle屬性綁定到currentStyles,以據此設置此元素的樣式:

    <div [ngStyle]="currentStyles"> This div is initially italic, normal weight, and extra large (24px). </div>

    你既可以在初始化時調用setCurrentStyles(),也可以在所依賴的屬性變化時調用。

    NgIf

    通過綁定NgIf指令到真值表達式,可以把元素子樹(元素及其子元素)添加到 DOM 上。

    <div *ngIf="currentHero">Hello, {{currentHero.firstName}}</div>

    別忘了ngIf前面的星號(*)。 更多信息,見?* 與 <template>。

    綁定到假值表達式將從 DOM 中移除元素子樹。

    <!-- because of the ngIf guard`nullHero.firstName` never has a chance to fail --> <div *ngIf="nullHero">Hello, {{nullHero.firstName}}</div> <!-- Hero Detail is not in the DOM because isActive is false--> <hero-detail *ngIf="isActive"></hero-detail>

    可見性和NGIF不是一回事

    我們可以通過類綁定或樣式綁定來顯示和隱藏元素子樹(元素及其子元素)。

    <!-- isSpecial is true --> <div [class.hidden]="!isSpecial">Show with class</div> <div [class.hidden]="isSpecial">Hide with class</div> <!-- HeroDetail is in the DOM but hidden --> <hero-detail [class.hidden]="isSpecial"></hero-detail> <div [style.display]="isSpecial ? 'block' : 'none'">Show with style</div> <div [style.display]="isSpecial ? 'none' : 'block'">Hide with style</div>

    隱藏子樹和用NgIf排除子樹是截然不同的。

    當隱藏子樹時,它仍然留在 DOM 中。 子樹中的組件及其狀態仍然保留著。 即使對于不可見屬性,Angular 也會繼續檢查變更。 子樹可能占用相當可觀的內存和運算資源。

    當NgIf為false時,Angular 從 DOM 中物理地移除了這個元素子樹。 它銷毀了子樹中的組件及其狀態,也潛在釋放了可觀的資源,最終讓用戶體驗到更好的性能。

    顯示 / 隱藏技術用在小型元素樹上可能還不錯。 但在隱藏大樹時我們得小心;NgIf可能是更安全的選擇。但要記住:永遠得先測量,再下結論。

    NgSwitch

    當需要從一組可能的元素樹中根據條件顯示一個時,我們就把它綁定到NgSwitch。 Angular 將只把選中的元素樹放進 DOM 中。

    下面是例子:

    <span [ngSwitch]="toeChoice"> <span *ngSwitchCase="'Eenie'">Eenie</span> <span *ngSwitchCase="'Meanie'">Meanie</span> <span *ngSwitchCase="'Miney'">Miney</span> <span *ngSwitchCase="'Moe'">Moe</span> <span *ngSwitchDefault>other</span> </span>

    我們把作為父指令的NgSwitch綁定到能返回開關值的表達式。 本例中,這個值是字符串,但它也可以是任何類型的值。

    這個例子中,父指令NgSwitch控制一組<span>子元素。 每個<span>或者掛在匹配值表達式上,或者被標記為默認情況。

    任何時候,這些?span?中最多只有一個會出現在 DOM 中。

    如果這個?span?的匹配值等于開關值,Angular 就把這個<span>添加到 DOM 中。 如果沒有任何?span?匹配上,Angular 就把默認的?span?添加到 DOM 中。 Angular 會移除并銷毀所有其它的?span。

    可以用任何其它元素代替本例中的?span。 那個元素可以是帶有巨大子樹的<div>。 只有匹配的<div>和它的子樹會顯示在 DOM 中,其它的則會被移除。

    這里有三個相互合作的指令:

  • ngSwitch:綁定到返回開關值的表達式

  • ngSwitchCase:綁定到返回匹配值的表達式

  • ngSwitchDefault:用于標記出默認元素的 attribute

  • 不要在ngSwitch的前面加星號 (*),而應該用屬性綁定。

    把星號 (*) 放在ngSwitchCase和ngSwitchDefault的前面。 要了解更多信息,見?* 與 <template>。

    NgFor

    NgFor是一個重復器指令 —— 自定義數據顯示的一種方式。

    我們的目標是展示一個由多個條目組成的列表。首先定義了一個 HTML 塊,它規定了單個條目應該如何顯示。 再告訴 Angular 把這個塊當做模板,渲染列表中的每個條目。

    下例中,NgFor應用在一個簡單的<div>上:

    <div *ngFor="let hero of heroes">{{hero.fullName}}</div>

    也可以把NgFor應用在一個組件元素上,就下例這樣:

    <hero-detail *ngFor="let hero of heroes" [hero]="hero"></hero-detail>

    不要忘了ngFor前面的星號 (*)。 更多信息,見?* 與 <template>

    賦值給*ngFor的文本是用于指導重復器如何工作的指令。

    NGFOR 微語法

    賦值給*ngFor的字符串不是模板表達式。 它是一個微語法?—— 由 Angular 自己解釋的小型語言。在這個例子中,字符串"let hero of heroes"的含義是:

    取出heroes數組中的每個英雄,把它存入局部變量hero中,并在每次迭代時對模板 HTML 可用

    Angular 把這個指令翻譯成一組元素和綁定。

    在前面的兩個例子中,ngFor指令在heroes數組上進行迭代(它是由父組件的heroes屬性返回的), 以其所在的元素為模板“沖壓”出很多實例。 Angular 為數組中的每個英雄創建了此模板的一個全新實例。

    hero前面的let關鍵字創建了名叫hero的模板輸入變量。

    模板輸入變量和模板引用變量不是一回事!

    在模板中使用這個變量來訪問英雄的屬性,就像在插值表達式中所做的那樣。 也可以把這個變量傳給組件元素上的綁定,就像對hero-detail所做的那樣。

    帶索引的 NGFOR

    ngFor指令支持可選的index,它在迭代過程中會從 0 增長到“數組的長度”。 可以通過模板輸入變量來捕獲這個 index,并在模板中使用。

    下例把 index 捕獲到名叫i的變量中,使用它“沖壓出”像 "1 - Hercules Son of Zeus" 這樣的條目。

    <div *ngFor="let hero of heroes; let i=index">{{i + 1}} - {{hero.fullName}}</div>

    要學習更多的類似 index?的值,例如last、even和odd,請參閱?NgFor API 參考。

    NGFORTRACKBY

    ngFor指令有時候會性能較差,特別是在大型列表中。 對一個條目的一丁點改動、移除或添加,都會導致級聯的 DOM 操作。

    例如,我們可以通過重新從服務器查詢來刷新英雄列表。 刷新后的列表可能包含很多(如果不是全部的話)以前顯示過的英雄。

    我們知道這一點,是因為每個英雄的id沒有變化。 但在 Angular 看來,它只是一個由新的對象引用構成的新列表, 它沒有選擇,只能清理舊列表、舍棄那些 DOM 元素,并且用新的 DOM 元素來重建一個新列表。

    如果給它一個追蹤函數,Angular 就可以避免這種折騰。 追蹤函數告訴 Angular:我們知道兩個具有相同hero.id的對象其實是同一個英雄。 下面就是這樣一個函數:

    trackByHeroes(index: number, hero: Hero) { return hero.id; }

    現在,把NgForTrackBy指令設置為那個追蹤函數。

    <div *ngFor="let hero of heroes; trackBy:trackByHeroes">({{hero.id}}) {{hero.fullName}}</div>

    追蹤函數不會阻止所有 DOM 更改。 如果同一個英雄的屬性變化了,Angular 就可能不得不更新DOM元素。 但是如果這個屬性沒有變化 —— 而且大多數時候它們不會變化 —— Angular 就能留下這些 DOM 元素。列表界面就會更加平滑,提供更好的響應。

    這里是關于NgForTrackBy效果的插圖。

    * 與 <template>

    當審視NgFor、NgIf和NgSwitch這些內置指令時,我們使用了一種古怪的語法:出現在指令名稱前面的星號 (*)。

    *是一種語法糖,它讓那些需要借助模板來修改 HTML 布局的指令更易于讀寫。?NgFor、NgIf和NgSwitch都會添加或移除元素子樹,這些元素子樹被包裹在<template>標簽中。

    我們沒有看到<template>標簽,那是因為這種*前綴語法讓我們忽略了這個標簽, 而把注意力直接聚焦在所要包含、排除或重復的那些 HTML 元素上。

    這一節,將深入研究一下,看看 Angular 是怎樣扒掉這個*,把這段 HTML 展開到<template>標簽中的。

    展開*ngIf

    我們可以像 Angular 一樣,自己把*前綴語法展開成 template 語法,這里是*ngIf的一些代碼:

    <hero-detail *ngIf="currentHero" [hero]="currentHero"></hero-detail>

    currentHero被引用了兩次,第一次是作為NgIf的真 / 假條件,第二次把實際的 hero 值傳給了HeroDetailComponent。

    展開的第一步是把ngIf(沒有*前綴)和它的內容傳給表達式,再賦值給template指令。

    <hero-detail template="ngIf:currentHero" [hero]="currentHero"></hero-detail>

    下一步,也是最后一步,是把 HTML 包裹進<template>標簽和[ngIf]屬性綁定中:

    <template [ngIf]="currentHero"> <hero-detail [hero]="currentHero"></hero-detail> </template>

    注意,[hero]="currengHero"綁定留在了模板中的子元素<hero-detail>上。

    別忘了方括號!

    不要誤寫為ngIf="currentHero"! 這種語法會把一個字符串"currentHero"賦值給ngIf。 在 JavaScript 中,非空的字符串是真值,所以ngIf總會是true,而 Angular 將永遠顯示hero-detail…… 即使根本沒有currentHero!

    展開*ngSwitch

    類似的轉換也適用于*ngSwitch。我們可以自己解開這個語法糖。 下例中,首先是*ngSwitchCase和*ngSwitchDefault,然后再解出<template>標簽:

    <span [ngSwitch]="toeChoice"> <!-- with *NgSwitch --> <span *ngSwitchCase="'Eenie'">Eenie</span> <span *ngSwitchCase="'Meanie'">Meanie</span> <span *ngSwitchCase="'Miney'">Miney</span> <span *ngSwitchCase="'Moe'">Moe</span> <span *ngSwitchDefault>other</span> <!-- with <template> --> <template [ngSwitchCase]="'Eenie'"><span>Eenie</span></template> <template [ngSwitchCase]="'Meanie'"><span>Meanie</span></template> <template [ngSwitchCase]="'Miney'"><span>Miney</span></template> <template [ngSwitchCase]="'Moe'"><span>Moe</span></template> <template ngSwitchDefault><span>other</span></template> </span>

    *ngSwitchWhen和*ngSwitchDefault用和*ngIf完全相同的方式展開,把它們以前的元素包裹在<template>標簽中。

    現在,應該明白為什么ngSwitch本身不能用星號 (*) 前綴了吧? 它沒有定義內容,它的工作是控制一組模板。

    上面這種情況下,它管理兩組NgSwitchCase和NgSwitchDefault指令,一次是 (*) 前綴的版本,一次是展開模板后的版本。 我們也期待它顯示所選模板的值兩次。這正是在這個例子中看到的:

    展開*ngFor

    *ngFor也經歷類似的轉換。從一個*ngFor的例子開始:

    <hero-detail *ngFor="let hero of heroes; trackBy:trackByHeroes" [hero]="hero"></hero-detail>

    這里是在把ngFor傳進template指令后的同一個例子:

    <hero-detail template="ngFor let hero of heroes; trackBy:trackByHeroes" [hero]="hero"></hero-detail>

    下面,它被進一步擴展成了包裹著原始<hero-detail>元素的<template>標簽:

    <template ngFor let-hero [ngForOf]="heroes" [ngForTrackBy]="trackByHeroes"> <hero-detail [hero]="hero"></hero-detail> </template>

    NgFor的代碼相對NgIf更復雜一點,因為重復器有更多活動部分需要配置。 這種情況下,我們就得記住添加NgForOf指令和NgForTrackBy指令,并對它們賦值。 使用*ngFor語法比直接寫這些展開后的 HTML 本身要簡單多了。

    模板引用變量

    模板引用變量是模板中對 DOM 元素或指令的引用。

    它能在原生 DOM 元素中使用,也能用于 Angular 組件 —— 實際上,它可以和任何自定義 Web 組件協同工作。

    引用模板引用變量

    可以在同一元素、兄弟元素或任何子元素中引用模板引用變量。

    不要在同一個模版中多次定義相同變量名,否則運行時的值將會不可預測。

    這里是關于創建和使用模板引用變量的另外兩個例子:

    <!-- phone refers to the input element; pass its `value` to an event handler --> <input #phone placeholder="phone number"> <button (click)="callPhone(phone.value)">Call</button> <!-- fax refers to the input element; pass its `value` to an event handler --> <input ref-fax placeholder="fax number"> <button (click)="callFax(fax.value)">Fax</button>

    "phone" 的井號 (#) 前綴表示定義了一個phone變量。

    有些人不喜歡使用#字符,而是使用它的規范形式:ref-前綴。 例如,既能用#phone,也能用ref-phone來定義phone變量。

    如何獲取變量的值

    Angular 把這種變量的值設置為它所在的那個元素。 在這個input元素上定義了這些變量。 把那些input元素對象傳給 button 元素,在事件綁定中,它們作為參數傳給了call方法。

    NgForm 和模板引用變量

    讓我們看看最后一個例子:表單,使用模板引用變量的典范。

    正如在表單一章中所見過的,表單的 HTML 可以做得相當復雜。 下面是簡化過的范例 —— 雖然仍算不上多簡單。

    <form (ngSubmit)="onSubmit(theForm)" #theForm="ngForm"> <div class="form-group"> <label for="name">Name</label> <input class="form-control" name="name" required [(ngModel)]="currentHero.firstName"> </div> <button type="submit" [disabled]="!theForm.form.valid">Submit</button> </form>

    模板引用變量theForm在這個例子中出現了三次,中間隔著一大段 HTML。

    <form (ngSubmit)="onSubmit(theForm)" #theForm="ngForm"> <button type="submit" [disabled]="!theForm.form.valid">Submit</button> </form>

    theForm變量的值是什么?

    如果 Angular 沒有接管它,那它可能是個HTMLFormElement。 實際上它是個ngForm,對 Angular 內置指令NgForm的引用。 它包裝了原生的HTMLFormElement并賦予它更多超能力,比如跟蹤用戶輸入的有效性。

    這解釋了該如何通過檢查theForm.form.valid來禁用提交按鈕,以及如何把一個信息量略大的對象傳給父組件的onSubmit方法。(譯注:onSubmit方法可能會出發事件,被父組件監聽,參見下面的輸入和輸出屬性和父組件監聽子組件的事件。)

    輸入與輸出屬性

    迄今為止,我們主要聚焦在綁定聲明的右側,學習如何在模板表達式和模板語句中綁定到組件成員。 當成員出現在這個位置上,則稱之為數據綁定的

    本節則專注于綁定到的目標,它位于綁定聲明中的左側。 這些指令的屬性必須被聲明成輸入輸出

    記住:所有組件皆為指令

    我們要重點突出下綁定目標和綁定的區別。

    綁定的目標是在=左側的部分,?源則是在=右側的部分。

    綁定的目標是綁定符:[]、()或[()]中的屬性或事件名,?源則是引號 (" ") 中的部分或插值符號 ({{}}) 中的部分。

    指令中的每個成員都會自動在綁定中可用。 不需要特別做什么,就能在模板表達式或語句中訪問指令的成員。

    訪問目標指令中的成員則受到限制。 只能綁定到那些顯式標記為輸入或輸出的屬性。

    在下面的例子中,iconUrl和onSave是組件的成員,它們在=右側引號語法中被引用了。

    <img [src]="iconUrl"/> <button (click)="onSave()">Save</button>

    它們既不是組件的輸入也不是輸出。它們是綁定的數據源。

    現在,看看HeroDetailComponent,它是綁定的目標

    <hero-detail [hero]="currentHero" (deleteRequest)="deleteHero($event)"> </hero-detail>

    HeroDetailComponent.hero和HeroDetailComponent.deleteRequest都在綁定聲明的左側。?HeroDetailComponent.hero在方括號中,它是屬性綁定的目標。?HeroDetailComponent.deleteRequest在圓括號中,它是事件綁定的目標。

    聲明輸入和輸出屬性

    目標屬性必須被顯式的標記為輸入或輸出。

    當我們深入HeroDetailComponent內部時,就會看到這些屬性被裝飾器標記成了輸入和輸出屬性。

    @Input() hero: Hero; @Output() deleteRequest = new EventEmitter<Hero>();

    另外,還可以在指令元數據的inputs或outputs數組中標記出這些成員。比如這個例子:

    @Component({inputs: ['hero'], outputs: ['deleteRequest'], })

    既可以通過裝飾器,也可以通過元數據數組來指定輸入/輸出屬性。但別同時用!

    輸入還是輸出?

    輸入屬性通常接收數據值。?輸出屬性暴露事件生產者,如EventEmitter對象。

    輸入和輸出這兩個詞是從目標指令的角度來說的。

    從HeroDetailComponent角度來看,HeroDetailComponent.hero是個輸入屬性, 因為數據流從模板綁定表達式流入那個屬性。

    從HeroDetailComponent角度來看,HeroDetailComponent.deleteRequest是個輸出屬性, 因為事件從那個屬性流出,流向模板綁定語句中的處理器。

    給輸入/輸出屬性起別名

    有時需要讓輸入/輸出屬性的公開名字不同于內部名字。

    這是使用?attribute 指令時的常見情況。 指令的使用者期望綁定到指令名。例如,在<div>上用myClick選擇器應用指令時, 希望綁定的事件屬性也叫myClick。

    <div (myClick)="clickMessage=$event">click with myClick</div>

    然而,在指令類中,直接用指令名作為自己的屬性名通常都不是好的選擇。 指令名很少能描述這個屬性是干嘛的。?myClick這個指令名對于用來發出 click 消息的屬性就算不上一個好名字。

    幸運的是,可以使用約定俗成的公開名字,同時在內部使用不同的名字。 在上面例子中,實際上是把myClick這個別名指向了指令自己的clicks屬性。

    把別名傳進@Input/@Output裝飾器,就可以為屬性指定別名,就像這樣:

    @Output('myClick') clicks = new EventEmitter<string>(); // @Output(alias) propertyName = ...

    也可在inputs和outputs數組中為屬性指定別名。 可以寫一個冒號 (:) 分隔的字符串,左側是指令中的屬性名,右側則是公開的別名。

    @Directive({outputs: ['clicks:myClick'] // propertyName:alias })

    模板表達式操作符

    模板表達式語言使用了 JavaScript 語法的子集,并補充了幾個用于特定場景的特殊操作符。 下面介紹其中的兩個:管道和安全導航操作符。

    ?

    管道操作符 ( | )

    在綁定之前,表達式的結果可能需要一些轉換。例如,可能希望把數字顯示成金額、強制文本變成大寫,或者過濾列表以及進行排序。

    Angular?管道對像這樣的小型轉換來說是個明智的選擇。 管道是一個簡單的函數,它接受一個輸入值,并返回轉換結果。 它們很容易用于模板表達式中,只要使用管道操作符 (|)?就行了。

    <div>Title through uppercase pipe: {{title | uppercase}}</div>

    管道操作符會把它左側的表達式結果傳給它右側的管道函數。

    還可以通過多個管道串聯表達式:

    <!-- Pipe chaining: convert title to uppercase, then to lowercase --> <div> Title through a pipe chain: {{title | uppercase | lowercase}} </div>

    還能對它們使用參數:

    <!-- pipe with configuration argument => "February 25, 1970" --> <div>Birthdate: {{currentHero?.birthdate | date:'longDate'}}</div>

    json管道對調試綁定特別有用:

    <div>{{currentHero | json}}</div>

    它生成的輸出是類似于這樣的:

    { "firstName": "Hercules", "lastName": "Son of Zeus", "birthdate": "1970-02-25T08:00:00.000Z", "url": "http://www.imdb.com/title/tt0065832/", "rate": 325, "id": 1 }

    ?

    安全導航操作符 ( ?. ) 和空屬性路徑

    Angular 的安全導航操作符 (?.)?是一種流暢而便利的方式,用來保護出現在屬性路徑中 null 和 undefined 值。 下例中,當currentHero為空時,保護視圖渲染器,讓它免于失敗。

    The current hero's name is {{currentHero?.firstName}}

    我們來詳細闡述一下這個問題和解決方案:

    如果下列數據綁定中title屬性為空,會發生什么?

    The title is {{title}}

    這個視圖仍然被渲染出來,但是顯示的值是空;只能看到 “The title is”,它后面卻沒有任何東西。 這是合理的行為。至少應用沒有崩潰。

    假設模板表達式涉及屬性路徑,在下例中,顯示一個空 (null) 英雄的firstName。

    The null hero's name is {{nullHero.firstName}}

    JavaScript 拋出了空引用錯誤,Angular 也是如此:

    TypeError: Cannot read property 'firstName' of null in [null].

    暈,整個視圖都不見了。

    如果確信hero屬性永遠不可能為空,可以聲稱這是合理的行為。 如果它必須不能為空,但它仍然是空值,實際上是制造了一個編程錯誤,它應該被捕獲和修復。 這種情況應該拋出異常。

    另一方面,屬性路徑中的空值可能會時常發生,特別是當我們知道數據最終會出現。

    當等待數據的時候,視圖渲染器不應該抱怨,而應該把這個空屬性路徑顯示為空白,就像上面title屬性那樣。

    不幸的是,當currentHero為空的時候,應用崩潰了。

    可以通過寫NgIf代碼來解決這個問題。

    <!--No hero, div not displayed, no error --> <div *ngIf="nullHero">The null hero's name is {{nullHero.firstName}}</div>

    或者可以嘗試通過&&來把屬性路徑的各部分串起來,讓它在遇到第一個空值的時候,就返回空。

    The null hero's name is {{nullHero && nullHero.firstName}}

    這些方法都有價值,但是會顯得笨重,特別是當這個屬性路徑非常長的時候。 想象一下在一個很長的屬性路徑(如a.b.c.d)中對空值提供保護。

    Angular 安全導航操作符 (?.) 是在屬性路徑中保護空值的更加流暢、便利的方式。 表達式會在它遇到第一個空值的時候跳出。 顯示是空的,但應用正常工作,而沒有發生錯誤。

    <!-- No hero, no problem! --> The null hero's name is {{nullHero?.firstName}}

    在像a?.b?.c?.d這樣的長屬性路徑中,它工作得很完美。

    轉載于:https://www.cnblogs.com/shitoupi/p/6622878.html

    總結

    以上是生活随笔為你收集整理的angular2的模板语法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    久久午夜无码鲁丝片秋霞 | 超碰97人人射妻 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 国产香蕉尹人综合在线观看 | 人人超人人超碰超国产 | 女人高潮内射99精品 | 久久婷婷五月综合色国产香蕉 | 无码人妻久久一区二区三区不卡 | 欧美老妇交乱视频在线观看 | 丰满少妇高潮惨叫视频 | 特大黑人娇小亚洲女 | 中文字幕乱码人妻二区三区 | 六月丁香婷婷色狠狠久久 | 久久午夜夜伦鲁鲁片无码免费 | 真人与拘做受免费视频一 | 亚洲国产精品无码一区二区三区 | 青青草原综合久久大伊人精品 | 天天综合网天天综合色 | 秋霞特色aa大片 | 高清无码午夜福利视频 | 日韩精品无码免费一区二区三区 | 中文字幕无码日韩专区 | 丰满岳乱妇在线观看中字无码 | 福利一区二区三区视频在线观看 | аⅴ资源天堂资源库在线 | 性欧美牲交xxxxx视频 | 大地资源网第二页免费观看 | 少妇无码av无码专区在线观看 | 无码任你躁久久久久久久 | 欧美zoozzooz性欧美 | 俺去俺来也在线www色官网 | 亚洲国产日韩a在线播放 | 精品一区二区三区无码免费视频 | 久久99精品国产.久久久久 | 一本久道久久综合婷婷五月 | 亚洲gv猛男gv无码男同 | 国产精品久免费的黄网站 | 亚洲第一网站男人都懂 | 国产午夜视频在线观看 | 久久综合狠狠综合久久综合88 | 麻豆人妻少妇精品无码专区 | 一个人免费观看的www视频 | 成人欧美一区二区三区黑人免费 | 性欧美疯狂xxxxbbbb | 在线 国产 欧美 亚洲 天堂 | 中文字幕无码av激情不卡 | 日韩无码专区 | 久久aⅴ免费观看 | 欧美激情内射喷水高潮 | 少妇一晚三次一区二区三区 | 中文字幕乱码亚洲无线三区 | 国产手机在线αⅴ片无码观看 | 亚洲啪av永久无码精品放毛片 | 狠狠色欧美亚洲狠狠色www | 日本xxxx色视频在线观看免费 | 国产成人无码av一区二区 | 老司机亚洲精品影院无码 | 欧美大屁股xxxxhd黑色 | 日韩精品无码一区二区中文字幕 | 天堂久久天堂av色综合 | 久久久精品欧美一区二区免费 | 又粗又大又硬又长又爽 | 波多野42部无码喷潮在线 | 欧美性黑人极品hd | 久久久久av无码免费网 | 男人扒开女人内裤强吻桶进去 | 精品国产国产综合精品 | 亚洲日韩乱码中文无码蜜桃臀网站 | 久久综合激激的五月天 | 野外少妇愉情中文字幕 | 欧美国产日韩亚洲中文 | 野外少妇愉情中文字幕 | 国产午夜无码视频在线观看 | 欧美日韩视频无码一区二区三 | 欧美日韩色另类综合 | 国产特级毛片aaaaaaa高清 | 少妇久久久久久人妻无码 | 国产成人无码午夜视频在线观看 | 亚洲s色大片在线观看 | 色欲av亚洲一区无码少妇 | 一本无码人妻在中文字幕免费 | 在线观看欧美一区二区三区 | 国产又粗又硬又大爽黄老大爷视 | 国产精品美女久久久久av爽李琼 | 久久亚洲精品成人无码 | 国产无遮挡吃胸膜奶免费看 | 精品aⅴ一区二区三区 | 亚洲小说春色综合另类 | 中文字幕无码免费久久9一区9 | 双乳奶水饱满少妇呻吟 | 成人无码视频在线观看网站 | 国精产品一品二品国精品69xx | 久久成人a毛片免费观看网站 | 欧美老熟妇乱xxxxx | 久久久久久av无码免费看大片 | 亚洲精品国产第一综合99久久 | 天干天干啦夜天干天2017 | 又黄又爽又色的视频 | 国产农村乱对白刺激视频 | 国产明星裸体无码xxxx视频 | 天天拍夜夜添久久精品大 | 国产又粗又硬又大爽黄老大爷视 | 国产偷国产偷精品高清尤物 | 亚洲色无码一区二区三区 | 亚洲色成人中文字幕网站 | 日韩视频 中文字幕 视频一区 | 国产精品福利视频导航 | 波多野42部无码喷潮在线 | 天天av天天av天天透 | 熟妇人妻激情偷爽文 | 色一情一乱一伦一视频免费看 | 久久这里只有精品视频9 | 丰满少妇高潮惨叫视频 | 亚洲性无码av中文字幕 | 国产精品久久久久影院嫩草 | 青青青爽视频在线观看 | 日本丰满护士爆乳xxxx | 国产偷自视频区视频 | 久久国内精品自在自线 | 久久人人爽人人爽人人片av高清 | 国产口爆吞精在线视频 | 88国产精品欧美一区二区三区 | 老司机亚洲精品影院无码 | 67194成是人免费无码 | 国产精品久久久久久无码 | 中文字幕 人妻熟女 | 无码午夜成人1000部免费视频 | 装睡被陌生人摸出水好爽 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | aa片在线观看视频在线播放 | 中文久久乱码一区二区 | 狂野欧美性猛交免费视频 | 97精品国产97久久久久久免费 | 国产成人人人97超碰超爽8 | 午夜免费福利小电影 | 欧美国产日韩亚洲中文 | 大乳丰满人妻中文字幕日本 | 成人性做爰aaa片免费看 | 亚洲精品中文字幕乱码 | 国内丰满熟女出轨videos | 国产亚洲精品久久久久久 | 日韩精品a片一区二区三区妖精 | 老司机亚洲精品影院无码 | 亚洲欧美日韩国产精品一区二区 | 欧美自拍另类欧美综合图片区 | 激情人妻另类人妻伦 | 国产明星裸体无码xxxx视频 | 伊人久久大香线焦av综合影院 | 又大又硬又黄的免费视频 | 国产超级va在线观看视频 | 日日碰狠狠躁久久躁蜜桃 | 欧美日韩人成综合在线播放 | 国产精品多人p群无码 | 九月婷婷人人澡人人添人人爽 | 久久久久99精品国产片 | 六十路熟妇乱子伦 | 亚洲国产精品毛片av不卡在线 | 国产偷国产偷精品高清尤物 | 色老头在线一区二区三区 | 午夜性刺激在线视频免费 | 人人爽人人澡人人高潮 | 亚洲国产欧美日韩精品一区二区三区 | 久久久国产一区二区三区 | 亚洲国产欧美日韩精品一区二区三区 | 欧美三级不卡在线观看 | 国产精品二区一区二区aⅴ污介绍 | 欧美 日韩 亚洲 在线 | 无码人妻丰满熟妇区五十路百度 | 西西人体www44rt大胆高清 | 免费观看激色视频网站 | 99re在线播放 | 无码人妻出轨黑人中文字幕 | 久久久精品人妻久久影视 | 精品偷拍一区二区三区在线看 | 亚洲综合无码一区二区三区 | 精品偷拍一区二区三区在线看 | 樱花草在线播放免费中文 | 少妇性荡欲午夜性开放视频剧场 | 日本护士xxxxhd少妇 | 人妻少妇精品视频专区 | 欧美性生交xxxxx久久久 | 亚洲精品一区二区三区婷婷月 | 精品国产一区二区三区四区 | 国产精品无套呻吟在线 | 亚洲一区二区三区香蕉 | 波多野结衣av一区二区全免费观看 | 永久免费观看美女裸体的网站 | 丝袜人妻一区二区三区 | 国产精品.xx视频.xxtv | 亚洲s码欧洲m码国产av | 日日碰狠狠躁久久躁蜜桃 | 成在人线av无码免观看麻豆 | 福利一区二区三区视频在线观看 | 亚洲人成人无码网www国产 | av人摸人人人澡人人超碰下载 | www成人国产高清内射 | 99riav国产精品视频 | 四十如虎的丰满熟妇啪啪 | 99精品无人区乱码1区2区3区 | 国产在线无码精品电影网 | 国产熟妇另类久久久久 | 久久精品一区二区三区四区 | 无码人妻出轨黑人中文字幕 | 亚洲国产高清在线观看视频 | 久久久精品成人免费观看 | 久久国产精品萌白酱免费 | 精品欧美一区二区三区久久久 | 日本一区二区三区免费高清 | 美女黄网站人色视频免费国产 | 偷窥日本少妇撒尿chinese | 日韩人妻无码中文字幕视频 | 熟妇激情内射com | 久久久久99精品成人片 | 国产农村妇女高潮大叫 | 激情综合激情五月俺也去 | 两性色午夜免费视频 | 97精品国产97久久久久久免费 | 午夜熟女插插xx免费视频 | 精品成人av一区二区三区 | 亚洲gv猛男gv无码男同 | 国产福利视频一区二区 | 亚洲成a人片在线观看日本 | 欧美阿v高清资源不卡在线播放 | 一本久道久久综合狠狠爱 | 国产精品亚洲专区无码不卡 | 日本乱人伦片中文三区 | 98国产精品综合一区二区三区 | 亚洲精品美女久久久久久久 | 国产精品亚洲五月天高清 | 精品欧洲av无码一区二区三区 | 男人和女人高潮免费网站 | 97无码免费人妻超级碰碰夜夜 | 国产超碰人人爽人人做人人添 | 精品久久久无码人妻字幂 | 性做久久久久久久免费看 | 国产精品高潮呻吟av久久4虎 | 中文字幕日韩精品一区二区三区 | 成人免费视频在线观看 | 国产办公室秘书无码精品99 | 丝袜美腿亚洲一区二区 | 人妻中文无码久热丝袜 | 成人女人看片免费视频放人 | 无码乱肉视频免费大全合集 | 搡女人真爽免费视频大全 | 在线а√天堂中文官网 | 国产成人一区二区三区在线观看 | 色综合久久久久综合一本到桃花网 | 国产精品va在线观看无码 | 日韩精品a片一区二区三区妖精 | 国产凸凹视频一区二区 | 丰满人妻精品国产99aⅴ | 夜精品a片一区二区三区无码白浆 | 日本精品少妇一区二区三区 | 麻豆精品国产精华精华液好用吗 | 久久综合狠狠综合久久综合88 | 亚洲中文字幕在线无码一区二区 | 免费国产成人高清在线观看网站 | 精品一二三区久久aaa片 | 国产成人综合色在线观看网站 | 欧美丰满熟妇xxxx | 国产国产精品人在线视 | 中文无码精品a∨在线观看不卡 | 久久久成人毛片无码 | 午夜时刻免费入口 | 日本大香伊一区二区三区 | 国产精品资源一区二区 | 久久伊人色av天堂九九小黄鸭 | 美女毛片一区二区三区四区 | 国产亚洲美女精品久久久2020 | 国产精品久久久久久亚洲影视内衣 | 国产精品无码成人午夜电影 | 夫妻免费无码v看片 | 成人女人看片免费视频放人 | 国产精品鲁鲁鲁 | 精品国产aⅴ无码一区二区 | 久久综合激激的五月天 | 国产 浪潮av性色四虎 | 久久亚洲日韩精品一区二区三区 | 日韩av无码一区二区三区不卡 | 国产精品自产拍在线观看 | 日欧一片内射va在线影院 | 久久久久国色av免费观看性色 | 无码av免费一区二区三区试看 | 亚洲另类伦春色综合小说 | 亚洲熟妇自偷自拍另类 | 久久久无码中文字幕久... | 亚洲精品欧美二区三区中文字幕 | 欧洲vodafone精品性 | 国产精品-区区久久久狼 | www国产亚洲精品久久网站 | 国产成人无码a区在线观看视频app | 国产精品爱久久久久久久 | 亚洲男人av天堂午夜在 | 又粗又大又硬又长又爽 | 欧美老熟妇乱xxxxx | 嫩b人妻精品一区二区三区 | 福利一区二区三区视频在线观看 | 熟女体下毛毛黑森林 | 性欧美大战久久久久久久 | 中文字幕 人妻熟女 | 国产乱人无码伦av在线a | 国内精品久久久久久中文字幕 | 欧美日韩人成综合在线播放 | 亚洲人成人无码网www国产 | 亚洲精品中文字幕 | 精品久久综合1区2区3区激情 | 天堂无码人妻精品一区二区三区 | 无码国产乱人伦偷精品视频 | 国产亚洲欧美日韩亚洲中文色 | 久久精品国产一区二区三区肥胖 | 最近的中文字幕在线看视频 | 国产成人精品久久亚洲高清不卡 | 台湾无码一区二区 | 欧美亚洲国产一区二区三区 | 熟妇人妻无码xxx视频 | 国产精品毛片一区二区 | 精品午夜福利在线观看 | 欧美大屁股xxxxhd黑色 | 精品一区二区不卡无码av | 性色av无码免费一区二区三区 | 中文字幕日韩精品一区二区三区 | 国产精品久久久久久亚洲影视内衣 | 撕开奶罩揉吮奶头视频 | 中文字幕+乱码+中文字幕一区 | 日日摸日日碰夜夜爽av | 最近免费中文字幕中文高清百度 | 大地资源中文第3页 | а√天堂www在线天堂小说 | 国产一精品一av一免费 | 精品水蜜桃久久久久久久 | 少妇无码吹潮 | 日本一区二区三区免费播放 | 国产成人精品无码播放 | 天天综合网天天综合色 | 国产真人无遮挡作爱免费视频 | 色婷婷av一区二区三区之红樱桃 | 99久久久无码国产aaa精品 | 亚洲精品国产a久久久久久 | 一本加勒比波多野结衣 | 久久久久久九九精品久 | 亚洲另类伦春色综合小说 | 天天拍夜夜添久久精品 | 伊在人天堂亚洲香蕉精品区 | 扒开双腿疯狂进出爽爽爽视频 | 国内老熟妇对白xxxxhd | 丰腴饱满的极品熟妇 | 欧美黑人性暴力猛交喷水 | 国产又爽又黄又刺激的视频 | 国内揄拍国内精品人妻 | 欧美真人作爱免费视频 | 久久久久免费看成人影片 | 成年美女黄网站色大免费视频 | 亚洲aⅴ无码成人网站国产app | 99久久久无码国产aaa精品 | 欧美 日韩 亚洲 在线 | 国产综合久久久久鬼色 | 99久久久无码国产aaa精品 | 久久综合九色综合97网 | 色综合久久久无码网中文 | 欧美 亚洲 国产 另类 | 人妻少妇精品无码专区动漫 | 中文字幕日产无线码一区 | 欧美日韩一区二区三区自拍 | 国产艳妇av在线观看果冻传媒 | 精品国产一区二区三区av 性色 | 一本久道久久综合婷婷五月 | 色婷婷香蕉在线一区二区 | 精品国产一区二区三区四区在线看 | 国产熟妇高潮叫床视频播放 | 国产高清不卡无码视频 | 丝袜人妻一区二区三区 | 久久国产精品偷任你爽任你 | 97精品人妻一区二区三区香蕉 | 亚洲娇小与黑人巨大交 | 又大又紧又粉嫩18p少妇 | 4hu四虎永久在线观看 | 精品久久8x国产免费观看 | 国产精品毛多多水多 | 99久久无码一区人妻 | 欧美日韩一区二区综合 | 亚洲国产精品久久久久久 | 欧美黑人性暴力猛交喷水 | 国产成人一区二区三区在线观看 | 国产亚洲tv在线观看 | 久久亚洲国产成人精品性色 | 久久国产精品二国产精品 | 狠狠躁日日躁夜夜躁2020 | 亚拍精品一区二区三区探花 | 成人无码影片精品久久久 | 日日干夜夜干 | 一区二区三区高清视频一 | 久久综合激激的五月天 | 精品人妻人人做人人爽夜夜爽 | 纯爱无遮挡h肉动漫在线播放 | 亚洲精品国产精品乱码不卡 | 中国大陆精品视频xxxx | 性色av无码免费一区二区三区 | 亲嘴扒胸摸屁股激烈网站 | 国产一区二区三区精品视频 | 美女黄网站人色视频免费国产 | 国产农村乱对白刺激视频 | 国产高清av在线播放 | 亚洲色无码一区二区三区 | 国产亚洲视频中文字幕97精品 | 欧美zoozzooz性欧美 | 日产精品99久久久久久 | 少妇被黑人到高潮喷出白浆 | 欧美xxxx黑人又粗又长 | 亚洲精品一区二区三区大桥未久 | 丰满人妻精品国产99aⅴ | 亚洲综合无码一区二区三区 | 亚洲色欲久久久综合网东京热 | 亚洲一区二区三区四区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 亚洲а∨天堂久久精品2021 | 国产一区二区三区日韩精品 | 99在线 | 亚洲 | 亚洲啪av永久无码精品放毛片 | 无码人妻丰满熟妇区毛片18 | 日韩少妇内射免费播放 | 成人一区二区免费视频 | 无遮挡国产高潮视频免费观看 | 国产精品第一区揄拍无码 | 亚洲欧美精品伊人久久 | 波多野结衣乳巨码无在线观看 | 国产精品亚洲五月天高清 | 大地资源网第二页免费观看 | 日本一本二本三区免费 | 国产精品亚洲专区无码不卡 | 亚洲综合无码一区二区三区 | 国产人妻人伦精品1国产丝袜 | 欧美老熟妇乱xxxxx | 日韩精品久久久肉伦网站 | 精品国产青草久久久久福利 | 日韩精品无码免费一区二区三区 | 免费中文字幕日韩欧美 | 精品国产aⅴ无码一区二区 | 国产亚洲精品精品国产亚洲综合 | 中文字幕av日韩精品一区二区 | 中文字幕无码av波多野吉衣 | 国产极品美女高潮无套在线观看 | 欧美丰满少妇xxxx性 | 欧美国产日产一区二区 | 无码av岛国片在线播放 | 99精品无人区乱码1区2区3区 | 亚洲成av人在线观看网址 | 色五月丁香五月综合五月 | 18禁黄网站男男禁片免费观看 | 久久99久久99精品中文字幕 | 亚洲а∨天堂久久精品2021 | 99在线 | 亚洲 | 亚拍精品一区二区三区探花 | 久久99久久99精品中文字幕 | 国产av人人夜夜澡人人爽麻豆 | 亚洲春色在线视频 | 无码人妻丰满熟妇区毛片18 | 精品偷拍一区二区三区在线看 | 国产69精品久久久久app下载 | 欧美人妻一区二区三区 | 精品人人妻人人澡人人爽人人 | 国产三级精品三级男人的天堂 | www国产亚洲精品久久网站 | 无码任你躁久久久久久久 | 无码精品国产va在线观看dvd | 99久久精品午夜一区二区 | 人妻熟女一区 | 东京热无码av男人的天堂 | 免费无码肉片在线观看 | 亚洲精品一区二区三区大桥未久 | 国产又爽又猛又粗的视频a片 | 日韩亚洲欧美精品综合 | 欧美第一黄网免费网站 | 人人澡人人妻人人爽人人蜜桃 | 亚洲色偷偷偷综合网 | 欧美黑人巨大xxxxx | 成人无码精品1区2区3区免费看 | 1000部夫妻午夜免费 | 丰满人妻翻云覆雨呻吟视频 | 精品国产一区二区三区四区 | 欧美 丝袜 自拍 制服 另类 | 97无码免费人妻超级碰碰夜夜 | 色窝窝无码一区二区三区色欲 | 久久亚洲精品成人无码 | 强伦人妻一区二区三区视频18 | 国产一区二区三区精品视频 | 欧洲精品码一区二区三区免费看 | 亚洲中文字幕va福利 | 高潮毛片无遮挡高清免费 | 精品偷自拍另类在线观看 | 亚洲 a v无 码免 费 成 人 a v | 成人欧美一区二区三区 | 免费观看激色视频网站 | 久久天天躁狠狠躁夜夜免费观看 | 国产成人无码一二三区视频 | 亚洲一区二区三区含羞草 | www一区二区www免费 | 国产激情精品一区二区三区 | 国产两女互慰高潮视频在线观看 | 国产在热线精品视频 | 国产精品嫩草久久久久 | 国产人妻精品午夜福利免费 | 国产亚洲精品久久久久久 | 日韩av无码一区二区三区不卡 | 亚洲色大成网站www国产 | 熟妇人妻激情偷爽文 | 国产一精品一av一免费 | 少妇高潮一区二区三区99 | 亚洲春色在线视频 | 国产极品美女高潮无套在线观看 | 久久久久99精品国产片 | 亚洲精品成人av在线 | 国产无遮挡吃胸膜奶免费看 | 色一情一乱一伦 | 色诱久久久久综合网ywww | 精品久久久久久人妻无码中文字幕 | 亚洲色www成人永久网址 | 国产精品爱久久久久久久 | 性生交大片免费看女人按摩摩 | 欧美 丝袜 自拍 制服 另类 | 久久99精品久久久久久 | 丰满岳乱妇在线观看中字无码 | 性色欲网站人妻丰满中文久久不卡 | 中文字幕乱妇无码av在线 | 男人和女人高潮免费网站 | 色婷婷av一区二区三区之红樱桃 | 亚洲一区av无码专区在线观看 | 激情综合激情五月俺也去 | 色综合久久久无码网中文 | 国产另类ts人妖一区二区 | 日韩精品久久久肉伦网站 | 亚洲综合久久一区二区 | 内射巨臀欧美在线视频 | 露脸叫床粗话东北少妇 | 免费无码午夜福利片69 | 国产精品高潮呻吟av久久 | 极品尤物被啪到呻吟喷水 | 国产偷国产偷精品高清尤物 | 亚洲熟女一区二区三区 | 国产真实乱对白精彩久久 | 又湿又紧又大又爽a视频国产 | 亚洲国产精品无码久久久久高潮 | 九九在线中文字幕无码 | 无人区乱码一区二区三区 | 亚洲精品中文字幕 | 内射后入在线观看一区 | 久久五月精品中文字幕 | 欧美精品国产综合久久 | 亚洲高清偷拍一区二区三区 | 久久99国产综合精品 | 日韩精品一区二区av在线 | 国产做国产爱免费视频 | 欧美激情一区二区三区成人 | 成年美女黄网站色大免费视频 | 国产成人无码午夜视频在线观看 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲国产精品无码久久久久高潮 | 久久久久亚洲精品男人的天堂 | 76少妇精品导航 | 乌克兰少妇性做爰 | 久久精品丝袜高跟鞋 | 丰满少妇弄高潮了www | 国产无av码在线观看 | 鲁大师影院在线观看 | 久久无码人妻影院 | 色欲综合久久中文字幕网 | 国产精品无码永久免费888 | 人妻少妇被猛烈进入中文字幕 | 国产精品自产拍在线观看 | 久久精品女人天堂av免费观看 | 日韩无码专区 | 99久久精品国产一区二区蜜芽 | 日本熟妇浓毛 | 精品乱子伦一区二区三区 | 人妻体内射精一区二区三四 | 日日天干夜夜狠狠爱 | 国产精品人人爽人人做我的可爱 | 全黄性性激高免费视频 | 无码任你躁久久久久久久 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 精品厕所偷拍各类美女tp嘘嘘 | 美女极度色诱视频国产 | 狂野欧美性猛交免费视频 | 少妇无码一区二区二三区 | 狠狠色欧美亚洲狠狠色www | 大胆欧美熟妇xx | 中国女人内谢69xxxxxa片 | 人人妻人人澡人人爽人人精品 | 黑人巨大精品欧美黑寡妇 | 77777熟女视频在线观看 а天堂中文在线官网 | 九九综合va免费看 | 国产午夜无码精品免费看 | 国产精品久久久久久亚洲影视内衣 | 国产无套内射久久久国产 | 四虎4hu永久免费 | 一本无码人妻在中文字幕免费 | 狠狠亚洲超碰狼人久久 | 亚洲欧美综合区丁香五月小说 | 日韩精品无码一区二区中文字幕 | 国产超级va在线观看视频 | 荫蒂被男人添的好舒服爽免费视频 | 国产精品毛多多水多 | 免费看男女做好爽好硬视频 | 2020久久超碰国产精品最新 | 全黄性性激高免费视频 | 欧美日本免费一区二区三区 | 国产精品亚洲专区无码不卡 | 亚洲人成网站在线播放942 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 高潮喷水的毛片 | 成人毛片一区二区 | 好屌草这里只有精品 | 国产av一区二区精品久久凹凸 | 无码一区二区三区在线 | 九九久久精品国产免费看小说 | 国产色xx群视频射精 | 2019nv天堂香蕉在线观看 | 精品国产青草久久久久福利 | 国产午夜福利亚洲第一 | 亚洲日韩乱码中文无码蜜桃臀网站 | 久久久久99精品成人片 | 麻花豆传媒剧国产免费mv在线 | 亚洲日韩中文字幕在线播放 | 日本乱偷人妻中文字幕 | 成人免费视频一区二区 | 国产97在线 | 亚洲 | 日本大香伊一区二区三区 | 欧美色就是色 | 狠狠综合久久久久综合网 | 牲欲强的熟妇农村老妇女视频 | 女人被男人躁得好爽免费视频 | 亚洲伊人久久精品影院 | 国産精品久久久久久久 | 狠狠噜狠狠狠狠丁香五月 | 爱做久久久久久 | 亚洲s色大片在线观看 | 四虎国产精品免费久久 | 日日天干夜夜狠狠爱 | 国产熟妇另类久久久久 | 国产成人无码午夜视频在线观看 | 亚洲国产精品毛片av不卡在线 | 又粗又大又硬毛片免费看 | 久久天天躁狠狠躁夜夜免费观看 | 一个人看的www免费视频在线观看 | 精品人妻中文字幕有码在线 | 国产美女精品一区二区三区 | 九一九色国产 | 亚洲国产精品一区二区第一页 | 水蜜桃亚洲一二三四在线 | 久久精品99久久香蕉国产色戒 | 亚洲中文字幕无码中字 | 亚洲娇小与黑人巨大交 | 国精产品一品二品国精品69xx | 国产乱人偷精品人妻a片 | 亚洲男人av天堂午夜在 | 综合人妻久久一区二区精品 | 国产精品久久久久久无码 | 国产精品久久久久久久9999 | 少妇愉情理伦片bd | 亚洲成a人片在线观看无码3d | 欧美人妻一区二区三区 | 亚洲乱码中文字幕在线 | 日本丰满熟妇videos | 久久久亚洲欧洲日产国码αv | 99麻豆久久久国产精品免费 | 丰满少妇女裸体bbw | 黄网在线观看免费网站 | 99riav国产精品视频 | 国产av人人夜夜澡人人爽麻豆 | ass日本丰满熟妇pics | 人妻少妇被猛烈进入中文字幕 | 成年美女黄网站色大免费全看 | 人人爽人人爽人人片av亚洲 | 波多野42部无码喷潮在线 | 精品欧洲av无码一区二区三区 | 一本久久a久久精品亚洲 | 99riav国产精品视频 | 免费国产成人高清在线观看网站 | 色综合久久久久综合一本到桃花网 | 成人aaa片一区国产精品 | 久久99热只有频精品8 | 久久99精品久久久久婷婷 | 日韩av无码一区二区三区不卡 | 成人精品视频一区二区三区尤物 | yw尤物av无码国产在线观看 | 国产卡一卡二卡三 | 国产精品爱久久久久久久 | 粉嫩少妇内射浓精videos | 一本大道久久东京热无码av | 成人免费视频一区二区 | 亚洲自偷自拍另类第1页 | 久9re热视频这里只有精品 | 99国产精品白浆在线观看免费 | 欧美日韩一区二区免费视频 | 1000部啪啪未满十八勿入下载 | 人妻无码αv中文字幕久久琪琪布 | 国产精品手机免费 | 1000部啪啪未满十八勿入下载 | 青草视频在线播放 | 色诱久久久久综合网ywww | 熟女俱乐部五十路六十路av | 男人和女人高潮免费网站 | 国产在线精品一区二区高清不卡 | 久久午夜无码鲁丝片 | yw尤物av无码国产在线观看 | 兔费看少妇性l交大片免费 | 欧美人与牲动交xxxx | 国产无套粉嫩白浆在线 | 国产69精品久久久久app下载 | 日本xxxx色视频在线观看免费 | av无码不卡在线观看免费 | aa片在线观看视频在线播放 | 人妻少妇精品久久 | 强开小婷嫩苞又嫩又紧视频 | 国产成人人人97超碰超爽8 | 狂野欧美性猛交免费视频 | 理论片87福利理论电影 | 午夜理论片yy44880影院 | 鲁鲁鲁爽爽爽在线视频观看 | 噜噜噜亚洲色成人网站 | 亚洲综合无码久久精品综合 | 一本精品99久久精品77 | 最新国产乱人伦偷精品免费网站 | 国产综合色产在线精品 | 青青草原综合久久大伊人精品 | 97夜夜澡人人爽人人喊中国片 | 欧美激情一区二区三区成人 | 亚洲精品久久久久久一区二区 | 丁香花在线影院观看在线播放 | av在线亚洲欧洲日产一区二区 | 曰本女人与公拘交酡免费视频 | 欧美性猛交内射兽交老熟妇 | 精品国产国产综合精品 | 亚洲区小说区激情区图片区 | 大乳丰满人妻中文字幕日本 | 欧美性色19p | 极品嫩模高潮叫床 | 久久99精品久久久久久动态图 | 亚洲色成人中文字幕网站 | 亚洲 激情 小说 另类 欧美 | 永久免费观看美女裸体的网站 | 中文字幕无码av波多野吉衣 | 欧美熟妇另类久久久久久多毛 | 日欧一片内射va在线影院 | 久久久久国色av免费观看性色 | 大肉大捧一进一出好爽视频 | 国产成人精品一区二区在线小狼 | 亚洲精品美女久久久久久久 | 成人欧美一区二区三区黑人 | 久激情内射婷内射蜜桃人妖 | 97久久超碰中文字幕 | 好屌草这里只有精品 | 亚洲欧美综合区丁香五月小说 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 免费观看又污又黄的网站 | 熟女体下毛毛黑森林 | 国产乱人伦av在线无码 | 亚洲爆乳无码专区 | 午夜无码人妻av大片色欲 | 精品偷自拍另类在线观看 | 97资源共享在线视频 | 在线观看免费人成视频 | 伊人久久大香线蕉亚洲 | 99久久精品日本一区二区免费 | 日本大乳高潮视频在线观看 | 老司机亚洲精品影院 | 午夜时刻免费入口 | 天堂无码人妻精品一区二区三区 | 成人无码视频免费播放 | 成人欧美一区二区三区黑人 | 欧美 亚洲 国产 另类 | 午夜熟女插插xx免费视频 | 在线观看欧美一区二区三区 | 久久99热只有频精品8 | www一区二区www免费 | 色狠狠av一区二区三区 | 亚洲精品国偷拍自产在线观看蜜桃 | 99久久人妻精品免费一区 | 国产在热线精品视频 | 国产乱子伦视频在线播放 | 精品久久久无码中文字幕 | 黑人巨大精品欧美黑寡妇 | 精品国产精品久久一区免费式 | 无码乱肉视频免费大全合集 | 国内精品九九久久久精品 | 日本欧美一区二区三区乱码 | 97久久精品无码一区二区 | 国产人妻人伦精品1国产丝袜 | 中文久久乱码一区二区 | a在线亚洲男人的天堂 | 午夜理论片yy44880影院 | 久久精品中文字幕大胸 | 蜜臀aⅴ国产精品久久久国产老师 | 嫩b人妻精品一区二区三区 | 国产精品资源一区二区 | 久久五月精品中文字幕 | 少妇人妻av毛片在线看 | 国产真实伦对白全集 | 99精品视频在线观看免费 | 夜先锋av资源网站 | 国产精品办公室沙发 | 国产人妻精品午夜福利免费 | 国产一区二区三区四区五区加勒比 | 丰满少妇人妻久久久久久 | 欧美人与动性行为视频 | 动漫av网站免费观看 | 亚洲乱码中文字幕在线 | 婷婷丁香五月天综合东京热 | 亚洲国产精品无码久久久久高潮 | 奇米影视7777久久精品人人爽 | 少妇久久久久久人妻无码 | 欧美日韩综合一区二区三区 | 日本丰满护士爆乳xxxx | 中文字幕色婷婷在线视频 | 少妇被黑人到高潮喷出白浆 | 男女作爱免费网站 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 日本成熟视频免费视频 | 国产香蕉尹人视频在线 | 国产真实乱对白精彩久久 | 欧美怡红院免费全部视频 | 扒开双腿疯狂进出爽爽爽视频 | 中国女人内谢69xxxxxa片 | а√天堂www在线天堂小说 | 亚洲日韩乱码中文无码蜜桃臀网站 | 无码人妻丰满熟妇区五十路百度 | 久久久久人妻一区精品色欧美 | 日韩少妇内射免费播放 | 久久精品视频在线看15 | 最近中文2019字幕第二页 | 精品一区二区不卡无码av | 日韩 欧美 动漫 国产 制服 | 青春草在线视频免费观看 | 少妇性l交大片欧洲热妇乱xxx | 熟女少妇人妻中文字幕 | 国产精品高潮呻吟av久久4虎 | 成人综合网亚洲伊人 | 久久亚洲a片com人成 | 日本肉体xxxx裸交 | 精品偷自拍另类在线观看 | 妺妺窝人体色www婷婷 | 国产亚洲精品精品国产亚洲综合 | 99国产精品白浆在线观看免费 | 少妇无码av无码专区在线观看 | 色欲av亚洲一区无码少妇 | 人妻少妇被猛烈进入中文字幕 | 亚洲日韩精品欧美一区二区 | 狠狠亚洲超碰狼人久久 | 亚洲爆乳大丰满无码专区 | 亚洲 另类 在线 欧美 制服 | 澳门永久av免费网站 | 国产情侣作爱视频免费观看 | 无码人妻久久一区二区三区不卡 | 国产免费久久精品国产传媒 | 亚洲成a人一区二区三区 | 国产偷自视频区视频 | 日韩精品乱码av一区二区 | 东京无码熟妇人妻av在线网址 | 精品aⅴ一区二区三区 | 波多野结衣av一区二区全免费观看 | 亚洲中文字幕在线无码一区二区 | 国产97色在线 | 免 | 无码精品国产va在线观看dvd | 免费看男女做好爽好硬视频 | 亚洲中文字幕在线无码一区二区 | 亚洲自偷自偷在线制服 | 亚洲日韩精品欧美一区二区 | 亚洲精品鲁一鲁一区二区三区 | 日本乱人伦片中文三区 | 国产精品国产自线拍免费软件 | 亚洲爆乳大丰满无码专区 | 强辱丰满人妻hd中文字幕 | 性色欲网站人妻丰满中文久久不卡 | 无码人妻出轨黑人中文字幕 | 天堂一区人妻无码 | 国产免费无码一区二区视频 | 亚洲成av人片天堂网无码】 | 国产精品久久久久影院嫩草 | www成人国产高清内射 | 狠狠cao日日穞夜夜穞av | 伊在人天堂亚洲香蕉精品区 | 国产精品久久久久无码av色戒 | 久久99精品久久久久久 | 捆绑白丝粉色jk震动捧喷白浆 | 久青草影院在线观看国产 | 欧美成人高清在线播放 | 国产疯狂伦交大片 | 性生交大片免费看女人按摩摩 | 久久精品国产精品国产精品污 | 377p欧洲日本亚洲大胆 | 狠狠色噜噜狠狠狠狠7777米奇 | 亚洲 日韩 欧美 成人 在线观看 | 成熟妇人a片免费看网站 | 强开小婷嫩苞又嫩又紧视频 | 2019nv天堂香蕉在线观看 | 少女韩国电视剧在线观看完整 | 国模大胆一区二区三区 | 亚洲伊人久久精品影院 | 亚洲精品成人福利网站 | 亚洲大尺度无码无码专区 | 日本精品少妇一区二区三区 | 色婷婷综合激情综在线播放 | 欧美喷潮久久久xxxxx | 99久久久无码国产精品免费 | 国产美女极度色诱视频www | 中文字幕日韩精品一区二区三区 | 最近免费中文字幕中文高清百度 | 国产成人一区二区三区在线观看 | 午夜福利不卡在线视频 | 久精品国产欧美亚洲色aⅴ大片 | 国产 精品 自在自线 | 7777奇米四色成人眼影 | 亚洲欧美综合区丁香五月小说 | 免费男性肉肉影院 | 台湾无码一区二区 | 中文精品久久久久人妻不卡 | 中文字幕乱妇无码av在线 | 青青草原综合久久大伊人精品 | 女人被男人躁得好爽免费视频 | 国产在线精品一区二区高清不卡 | 亚洲日韩av一区二区三区中文 | 男女下面进入的视频免费午夜 | 九九综合va免费看 | 丰满少妇女裸体bbw | 亚洲人成人无码网www国产 | 精品人人妻人人澡人人爽人人 | 婷婷五月综合缴情在线视频 | 久久久久久久久888 | 免费无码av一区二区 | 精品人妻av区 | 国产精品久久久久影院嫩草 | 色情久久久av熟女人妻网站 | 亚洲热妇无码av在线播放 | 精品久久综合1区2区3区激情 | 国产黄在线观看免费观看不卡 | 久久综合网欧美色妞网 | 又粗又大又硬又长又爽 | 黑人巨大精品欧美一区二区 | 久久久久成人精品免费播放动漫 | 日韩少妇白浆无码系列 | 又大又硬又黄的免费视频 | 亚洲日本va中文字幕 | 特黄特色大片免费播放器图片 | 亚洲小说图区综合在线 | 蜜臀av在线播放 久久综合激激的五月天 | 久久综合久久自在自线精品自 | 老太婆性杂交欧美肥老太 | 久久99精品国产.久久久久 | 大肉大捧一进一出好爽视频 | 国产人成高清在线视频99最全资源 | 久久久久久久人妻无码中文字幕爆 | 精品亚洲成av人在线观看 | 少妇无套内谢久久久久 | 久久 国产 尿 小便 嘘嘘 | 亚洲高清偷拍一区二区三区 | 久激情内射婷内射蜜桃人妖 | 精品国产一区二区三区av 性色 | 国产9 9在线 | 中文 | 成人精品一区二区三区中文字幕 | 久久精品99久久香蕉国产色戒 | 精品夜夜澡人妻无码av蜜桃 | 亚洲狠狠色丁香婷婷综合 | 国产69精品久久久久app下载 | 亚洲乱亚洲乱妇50p | 中文字幕乱码人妻无码久久 | 又大又硬又爽免费视频 | 国产亚洲美女精品久久久2020 | 国产熟妇高潮叫床视频播放 | 俄罗斯老熟妇色xxxx | 特黄特色大片免费播放器图片 | 2020久久香蕉国产线看观看 | 国内精品九九久久久精品 | 少妇高潮一区二区三区99 | 波多野结衣aⅴ在线 | 日韩精品成人一区二区三区 | 国产成人无码a区在线观看视频app | 亚洲一区二区三区无码久久 | 免费看少妇作爱视频 | 亚洲人成无码网www | 成人毛片一区二区 | 久久精品丝袜高跟鞋 | 性欧美videos高清精品 | 美女极度色诱视频国产 | 精品国偷自产在线视频 | 无码人妻丰满熟妇区五十路百度 | 正在播放老肥熟妇露脸 | 无人区乱码一区二区三区 | 高清无码午夜福利视频 | 国产成人综合在线女婷五月99播放 | 中国女人内谢69xxxx | 欧美性猛交xxxx富婆 | 国产后入清纯学生妹 | 中文字幕+乱码+中文字幕一区 | 成人精品天堂一区二区三区 | 理论片87福利理论电影 | 无码人妻黑人中文字幕 | 我要看www免费看插插视频 | 人妻尝试又大又粗久久 | 国产精品高潮呻吟av久久4虎 | 国产乱人偷精品人妻a片 | 亲嘴扒胸摸屁股激烈网站 | 久久久久av无码免费网 | 国产女主播喷水视频在线观看 | 国产精品va在线观看无码 | 欧美 丝袜 自拍 制服 另类 | 老司机亚洲精品影院无码 | 亚洲熟妇自偷自拍另类 | 欧美日韩人成综合在线播放 | 亚洲爆乳精品无码一区二区三区 | 亚洲经典千人经典日产 | 欧美日韩视频无码一区二区三 | 一区二区三区乱码在线 | 欧洲 | 99久久精品日本一区二区免费 | 亚洲人成无码网www | 国产人妻人伦精品1国产丝袜 | 精品无码国产一区二区三区av | 日韩精品无码一本二本三本色 | 亚洲呦女专区 | 5858s亚洲色大成网站www | 亚洲国产高清在线观看视频 | 国产农村妇女高潮大叫 | 国产精品久久久久7777 | 久久久久久九九精品久 | 99久久婷婷国产综合精品青草免费 | 国产艳妇av在线观看果冻传媒 | 精品一区二区不卡无码av | 天堂久久天堂av色综合 | 亚洲成在人网站无码天堂 | 亚洲色偷偷偷综合网 | 亚洲精品鲁一鲁一区二区三区 | 国产人妖乱国产精品人妖 | 中文字幕无码视频专区 | 日韩精品a片一区二区三区妖精 | 清纯唯美经典一区二区 | 国产三级精品三级男人的天堂 | 少妇性俱乐部纵欲狂欢电影 | 丁香花在线影院观看在线播放 | 亚洲精品一区二区三区四区五区 | 欧美国产日韩久久mv | 国产亚洲欧美日韩亚洲中文色 | 亚洲aⅴ无码成人网站国产app | 欧美日韩人成综合在线播放 | 久久久国产一区二区三区 | 欧美精品免费观看二区 | 2020最新国产自产精品 | 亚洲人成网站免费播放 | 久久久精品456亚洲影院 | 亚洲va欧美va天堂v国产综合 | 亚洲精品综合一区二区三区在线 | 久久久精品国产sm最大网站 | 日日碰狠狠丁香久燥 | 亚洲精品综合五月久久小说 | 久久视频在线观看精品 | 玩弄少妇高潮ⅹxxxyw | 夫妻免费无码v看片 | 精品国产aⅴ无码一区二区 | 亚洲日韩av一区二区三区中文 | 300部国产真实乱 | 内射白嫩少妇超碰 | 亚洲 高清 成人 动漫 | 精品一二三区久久aaa片 | 国产人成高清在线视频99最全资源 | 国产精品高潮呻吟av久久4虎 | 老太婆性杂交欧美肥老太 | 国产va免费精品观看 | 久久人人爽人人爽人人片ⅴ | 国产免费久久久久久无码 | 欧洲熟妇色 欧美 | 国产精品香蕉在线观看 | 131美女爱做视频 | 福利一区二区三区视频在线观看 | 色妞www精品免费视频 | 大肉大捧一进一出好爽视频 | 亚洲日韩中文字幕在线播放 | 少妇人妻大乳在线视频 | 台湾无码一区二区 | 亚洲精品午夜国产va久久成人 | 国产精品美女久久久 | 亚洲中文字幕av在天堂 | 国产精品嫩草久久久久 | 日本免费一区二区三区最新 | 午夜福利不卡在线视频 | 欧美 亚洲 国产 另类 | 巨爆乳无码视频在线观看 | 色婷婷久久一区二区三区麻豆 | 无码人妻丰满熟妇区毛片18 | 欧洲精品码一区二区三区免费看 | 国产精品鲁鲁鲁 | 性色欲情网站iwww九文堂 | 丰满少妇女裸体bbw | 真人与拘做受免费视频一 | 激情内射亚州一区二区三区爱妻 | 国产成人久久精品流白浆 | 大地资源网第二页免费观看 | 亚洲精品久久久久avwww潮水 | 色老头在线一区二区三区 | 无码人妻久久一区二区三区不卡 | 免费看男女做好爽好硬视频 | 天海翼激烈高潮到腰振不止 | 日韩亚洲欧美中文高清在线 | 人妻aⅴ无码一区二区三区 | 欧美人与善在线com | 久久久久久a亚洲欧洲av冫 | 亚洲欧洲日本无在线码 | 日本一区二区三区免费播放 | 性色欲情网站iwww九文堂 | 亚洲色大成网站www国产 | 成人欧美一区二区三区黑人免费 | 国产乱人无码伦av在线a | 一个人看的视频www在线 | 女人被爽到呻吟gif动态图视看 | 久久综合久久自在自线精品自 | 蜜臀av无码人妻精品 | 国产国产精品人在线视 | 1000部啪啪未满十八勿入下载 | 亚洲色偷偷偷综合网 | 色综合天天综合狠狠爱 | 成人免费无码大片a毛片 | 久久久亚洲欧洲日产国码αv | 国产高清不卡无码视频 | 中文字幕亚洲情99在线 | 午夜精品久久久久久久 | 无码免费一区二区三区 | 亚洲熟妇色xxxxx欧美老妇 | 97色伦图片97综合影院 | 亚洲精品久久久久avwww潮水 | 又黄又爽又色的视频 | 一本久道久久综合狠狠爱 | 综合网日日天干夜夜久久 | 亚洲中文字幕在线观看 | 日韩精品久久久肉伦网站 | 亚洲人成影院在线观看 | 兔费看少妇性l交大片免费 | 亚洲精品国产精品乱码不卡 | 无码国产激情在线观看 | 又紧又大又爽精品一区二区 | 精品亚洲韩国一区二区三区 | 国产一区二区三区四区五区加勒比 | 亚洲国产精品久久人人爱 | 久久精品国产日本波多野结衣 | 老太婆性杂交欧美肥老太 | 在线观看国产午夜福利片 | 免费视频欧美无人区码 | 在线播放亚洲第一字幕 | 4hu四虎永久在线观看 | 国产国产精品人在线视 | 久久精品一区二区三区四区 | 久久国产精品精品国产色婷婷 | 日日躁夜夜躁狠狠躁 | 精品成在人线av无码免费看 | 欧美丰满少妇xxxx性 | 天天拍夜夜添久久精品 | 久久久av男人的天堂 | 乱人伦人妻中文字幕无码久久网 | 亚洲 a v无 码免 费 成 人 a v | 欧美性猛交xxxx富婆 | 亚洲精品欧美二区三区中文字幕 | 大胆欧美熟妇xx | 最近免费中文字幕中文高清百度 | 午夜男女很黄的视频 | 狠狠色欧美亚洲狠狠色www | 麻豆国产人妻欲求不满 | 日韩欧美中文字幕公布 | 黑人粗大猛烈进出高潮视频 | 国产人妻人伦精品1国产丝袜 | 三上悠亚人妻中文字幕在线 | 亚洲综合色区中文字幕 | 亚洲成a人片在线观看无码3d | 国模大胆一区二区三区 | 少女韩国电视剧在线观看完整 | 国产熟女一区二区三区四区五区 | 台湾无码一区二区 | 欧美freesex黑人又粗又大 | 精品国产一区二区三区四区在线看 | 成人免费无码大片a毛片 | 免费看少妇作爱视频 | 精品久久久久香蕉网 | 免费无码的av片在线观看 | 日韩精品无码免费一区二区三区 | 国产又爽又黄又刺激的视频 | 国产三级久久久精品麻豆三级 | 国产免费久久久久久无码 | 欧美高清在线精品一区 | 人人妻人人藻人人爽欧美一区 | 高潮毛片无遮挡高清免费 | 国产亚洲精品精品国产亚洲综合 | 久久精品国产大片免费观看 | 亚洲一区二区三区四区 | 国产精品久久久av久久久 | 98国产精品综合一区二区三区 | 国产网红无码精品视频 | 国产在线无码精品电影网 | 曰韩少妇内射免费播放 | 少妇人妻偷人精品无码视频 | 国产免费无码一区二区视频 | 亚洲成av人片在线观看无码不卡 | 麻豆国产97在线 | 欧洲 | 久久精品人人做人人综合试看 | 欧美性猛交xxxx富婆 | 免费国产黄网站在线观看 | 国内精品九九久久久精品 | 中文字幕 亚洲精品 第1页 | 十八禁视频网站在线观看 | 成 人 免费观看网站 | 国产精品久久国产精品99 | 婷婷综合久久中文字幕蜜桃三电影 | 在教室伦流澡到高潮hnp视频 | 九月婷婷人人澡人人添人人爽 | 老子影院午夜精品无码 | 一本大道久久东京热无码av | 国产9 9在线 | 中文 | 国产三级精品三级男人的天堂 | 女人被男人躁得好爽免费视频 | 亚洲色欲色欲天天天www | 亚洲精品国产精品乱码视色 | 色欲av亚洲一区无码少妇 | а√天堂www在线天堂小说 | 特级做a爰片毛片免费69 | 牲欲强的熟妇农村老妇女 | 国产综合在线观看 | 精品欧洲av无码一区二区三区 | 久久久久久国产精品无码下载 | 成人动漫在线观看 | 无码人妻丰满熟妇区毛片18 | 嫩b人妻精品一区二区三区 | 玩弄少妇高潮ⅹxxxyw | 成人无码精品一区二区三区 | 九月婷婷人人澡人人添人人爽 | 久久人妻内射无码一区三区 | 精品国产成人一区二区三区 | 美女毛片一区二区三区四区 | 女高中生第一次破苞av | 日本一区二区三区免费播放 | 亚洲欧洲日本无在线码 | 人妻与老人中文字幕 | 亚洲综合另类小说色区 | 亚洲欧美综合区丁香五月小说 | 四虎4hu永久免费 | 久精品国产欧美亚洲色aⅴ大片 | 人妻少妇被猛烈进入中文字幕 | 欧美丰满老熟妇xxxxx性 | 欧美精品免费观看二区 | 亚洲欧美综合区丁香五月小说 | 图片区 小说区 区 亚洲五月 | 在线播放无码字幕亚洲 | 欧美成人家庭影院 | 亚洲狠狠色丁香婷婷综合 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧洲vodafone精品性 | 性做久久久久久久久 | 国产黑色丝袜在线播放 | a片免费视频在线观看 | 爽爽影院免费观看 | 精品欧美一区二区三区久久久 | 久久久久久久女国产乱让韩 | 天天av天天av天天透 | 无码毛片视频一区二区本码 | 最新国产麻豆aⅴ精品无码 | 无码国内精品人妻少妇 | 18禁黄网站男男禁片免费观看 | 超碰97人人做人人爱少妇 | 狂野欧美性猛交免费视频 | 欧美亚洲日韩国产人成在线播放 | 国产精品久久久久久无码 | 久久久久久久久蜜桃 | 久久久久国色av免费观看性色 | 性生交大片免费看女人按摩摩 | 亚洲乱码中文字幕在线 | 久久久久成人片免费观看蜜芽 | 久久精品女人的天堂av | av在线亚洲欧洲日产一区二区 | 国产乱码精品一品二品 | 国内综合精品午夜久久资源 | 成人精品一区二区三区中文字幕 | 兔费看少妇性l交大片免费 | 香港三级日本三级妇三级 | 久久精品中文字幕大胸 | 麻豆国产人妻欲求不满 | 久久久久免费精品国产 | 97夜夜澡人人双人人人喊 | 影音先锋中文字幕无码 | 国内少妇偷人精品视频免费 | 久久久久亚洲精品男人的天堂 | 久久人人97超碰a片精品 | 乱人伦人妻中文字幕无码久久网 | 激情内射日本一区二区三区 | 日本爽爽爽爽爽爽在线观看免 | 大屁股大乳丰满人妻 | 国产九九九九九九九a片 | 亚洲日韩av一区二区三区四区 | 精品国产麻豆免费人成网站 | 一区二区传媒有限公司 | 久久国产精品_国产精品 | 国产在线精品一区二区三区直播 | 免费乱码人妻系列无码专区 | 欧美激情综合亚洲一二区 | 亚洲大尺度无码无码专区 | 在线观看免费人成视频 | 亚洲а∨天堂久久精品2021 | 欧美日韩综合一区二区三区 | 国产又爽又猛又粗的视频a片 | 99久久精品国产一区二区蜜芽 | 色婷婷综合激情综在线播放 | 青青草原综合久久大伊人精品 | 亚欧洲精品在线视频免费观看 | 中文字幕乱码人妻无码久久 | 国产精品毛片一区二区 | 波多野结衣高清一区二区三区 | 国产精品亚洲五月天高清 | 久久精品中文字幕一区 | 丁香花在线影院观看在线播放 | 久久久精品欧美一区二区免费 | 99精品国产综合久久久久五月天 | 亚洲精品一区二区三区大桥未久 | 国产精品无码一区二区三区不卡 | 欧美激情综合亚洲一二区 | 精品国产国产综合精品 | 一本久道久久综合狠狠爱 | 在线播放亚洲第一字幕 | 久久精品丝袜高跟鞋 | 婷婷五月综合缴情在线视频 | 扒开双腿疯狂进出爽爽爽视频 | 伊人久久大香线蕉亚洲 | 少妇人妻av毛片在线看 | 一本色道久久综合狠狠躁 | 色婷婷欧美在线播放内射 | 少妇厨房愉情理9仑片视频 | 免费乱码人妻系列无码专区 | 精品aⅴ一区二区三区 | 日产精品高潮呻吟av久久 | 亚洲日韩一区二区三区 | 色婷婷av一区二区三区之红樱桃 | 18禁黄网站男男禁片免费观看 | 亚洲自偷精品视频自拍 | 国产免费无码一区二区视频 | 亚洲欧美色中文字幕在线 | 色一情一乱一伦一视频免费看 | 精品成在人线av无码免费看 | 永久免费观看国产裸体美女 | 久久无码中文字幕免费影院蜜桃 | 免费网站看v片在线18禁无码 | 亚洲成av人在线观看网址 | 日日天干夜夜狠狠爱 | 免费中文字幕日韩欧美 | 成熟女人特级毛片www免费 | 成人免费无码大片a毛片 | 久久99精品久久久久婷婷 | 亚洲熟女一区二区三区 | 精品国偷自产在线 | 极品尤物被啪到呻吟喷水 | 精品无码av一区二区三区 | 成人动漫在线观看 | 狠狠色噜噜狠狠狠狠7777米奇 | 性开放的女人aaa片 | 无码中文字幕色专区 | 精品成在人线av无码免费看 | 日韩av无码一区二区三区不卡 | 久久久精品国产sm最大网站 | 欧美成人午夜精品久久久 | 国产在线精品一区二区高清不卡 | 2019午夜福利不卡片在线 | 伊人久久大香线蕉午夜 | 天天摸天天碰天天添 | 久久五月精品中文字幕 | av无码电影一区二区三区 | 欧美人与善在线com | 激情内射亚州一区二区三区爱妻 | 7777奇米四色成人眼影 | 暴力强奷在线播放无码 | 亚洲gv猛男gv无码男同 | 装睡被陌生人摸出水好爽 | 亚洲精品欧美二区三区中文字幕 | 真人与拘做受免费视频 | 亚洲国产精华液网站w | 国产精品资源一区二区 | 无码吃奶揉捏奶头高潮视频 | 精品偷自拍另类在线观看 | 三上悠亚人妻中文字幕在线 | 黑人大群体交免费视频 | 无码人妻精品一区二区三区不卡 | 亚洲乱码中文字幕在线 | 久青草影院在线观看国产 | 性欧美熟妇videofreesex | 六月丁香婷婷色狠狠久久 | 中文字幕色婷婷在线视频 | 人妻互换免费中文字幕 | 欧美猛少妇色xxxxx | 色诱久久久久综合网ywww | 嫩b人妻精品一区二区三区 | 日本丰满熟妇videos | 亚洲精品久久久久avwww潮水 | 精品水蜜桃久久久久久久 | 中文字幕乱码人妻二区三区 | 免费无码的av片在线观看 | 亚洲人交乣女bbw | 亚洲一区二区三区无码久久 | 在线观看国产午夜福利片 | 无码国产乱人伦偷精品视频 | 日韩人妻无码一区二区三区久久99 | 久久久久成人片免费观看蜜芽 | 女人高潮内射99精品 | 又大又紧又粉嫩18p少妇 | 亚洲国产成人a精品不卡在线 | 97夜夜澡人人爽人人喊中国片 | 国产在线一区二区三区四区五区 | 国产一精品一av一免费 | 国产无套粉嫩白浆在线 | 免费人成在线视频无码 | 97精品国产97久久久久久免费 | aⅴ亚洲 日韩 色 图网站 播放 | 少妇无码一区二区二三区 | 玩弄中年熟妇正在播放 | 免费人成在线观看网站 | 99久久精品午夜一区二区 | 红桃av一区二区三区在线无码av | 成人无码精品1区2区3区免费看 | 国产九九九九九九九a片 | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲欧美国产精品专区久久 | 国产高潮视频在线观看 | 无码福利日韩神码福利片 | 亚洲日韩av一区二区三区中文 | 亚洲欧洲日本无在线码 | 久久天天躁夜夜躁狠狠 | 国产又粗又硬又大爽黄老大爷视 | 国产午夜福利100集发布 | 亚洲精品无码人妻无码 | 亚洲日韩精品欧美一区二区 | 亚无码乱人伦一区二区 | 亚洲午夜无码久久 | 天天做天天爱天天爽综合网 | 四虎国产精品免费久久 | 精品乱子伦一区二区三区 | 午夜福利不卡在线视频 | 未满小14洗澡无码视频网站 | 亚洲精品一区国产 | 激情亚洲一区国产精品 | 性生交大片免费看女人按摩摩 | 爆乳一区二区三区无码 | 国产精品久久久久无码av色戒 | 最近免费中文字幕中文高清百度 | 扒开双腿吃奶呻吟做受视频 | 日本爽爽爽爽爽爽在线观看免 | 两性色午夜免费视频 | 久久国产精品二国产精品 | 久久精品一区二区三区四区 | 色狠狠av一区二区三区 | 精品国产福利一区二区 | 国产av剧情md精品麻豆 | 一二三四在线观看免费视频 | 国产无av码在线观看 | 成人亚洲精品久久久久软件 | 狠狠色噜噜狠狠狠狠7777米奇 | 人人妻人人澡人人爽欧美一区 | 欧美激情一区二区三区成人 | 久精品国产欧美亚洲色aⅴ大片 | 色欲人妻aaaaaaa无码 | 俺去俺来也www色官网 | 日韩视频 中文字幕 视频一区 | 国产精品久久久久久无码 | 免费视频欧美无人区码 | 亚洲 a v无 码免 费 成 人 a v | 国产熟女一区二区三区四区五区 | 精品无码国产自产拍在线观看蜜 | 在线精品国产一区二区三区 | 夜精品a片一区二区三区无码白浆 | 亚洲中文字幕久久无码 | 国产精品亚洲综合色区韩国 | 欧美性生交活xxxxxdddd | 人人妻在人人 | 精品偷拍一区二区三区在线看 | 久久久久国色av免费观看性色 | 天堂久久天堂av色综合 | 成熟妇人a片免费看网站 | 亚洲爆乳精品无码一区二区三区 | 精品人妻人人做人人爽 | 人人妻人人澡人人爽精品欧美 | 九九综合va免费看 | 亚洲熟妇色xxxxx亚洲 | 亚洲高清偷拍一区二区三区 | 日本熟妇大屁股人妻 | 国产农村乱对白刺激视频 | 最新国产乱人伦偷精品免费网站 | 曰本女人与公拘交酡免费视频 | 国内少妇偷人精品视频 | 久久婷婷五月综合色国产香蕉 | 天堂一区人妻无码 | 在线天堂新版最新版在线8 | 无码人妻丰满熟妇区五十路百度 | 久久精品人人做人人综合 | 少妇性l交大片欧洲热妇乱xxx | 久久久久久av无码免费看大片 | 国产精品久久国产精品99 | 98国产精品综合一区二区三区 | 国产亚洲视频中文字幕97精品 | aⅴ亚洲 日韩 色 图网站 播放 | 东京无码熟妇人妻av在线网址 | 亚洲小说春色综合另类 | 一本色道久久综合亚洲精品不卡 | 久久亚洲中文字幕无码 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 成 人 网 站国产免费观看 | 日韩av无码一区二区三区不卡 | 久久久精品国产sm最大网站 | 欧美肥老太牲交大战 | 中文无码成人免费视频在线观看 | 一本加勒比波多野结衣 | 久久亚洲中文字幕精品一区 | 性欧美大战久久久久久久 | 无码吃奶揉捏奶头高潮视频 | 2019nv天堂香蕉在线观看 | 成人动漫在线观看 | 久久精品一区二区三区四区 | 国产精品资源一区二区 | 久久99精品久久久久婷婷 | 亚洲综合无码久久精品综合 | 国产xxx69麻豆国语对白 | 亚洲 另类 在线 欧美 制服 | 国产精品香蕉在线观看 | 亚洲成a人片在线观看无码3d | 亚洲国产精品久久人人爱 | 国产激情无码一区二区app | 欧美日韩一区二区三区自拍 | 亚洲中文字幕在线无码一区二区 | 十八禁视频网站在线观看 | 亚洲国产午夜精品理论片 | 性生交片免费无码看人 | 欧美午夜特黄aaaaaa片 | 97精品国产97久久久久久免费 | 国产精品久久福利网站 | 日韩av激情在线观看 | 亚洲成av人在线观看网址 | 免费无码午夜福利片69 | 人妻少妇精品无码专区动漫 | 久久人人爽人人爽人人片ⅴ | 乱人伦中文视频在线观看 | 亚洲天堂2017无码 | 国产亚洲欧美日韩亚洲中文色 | 久久综合九色综合97网 | 国产激情无码一区二区app | 国产真人无遮挡作爱免费视频 | 国产精品国产三级国产专播 | 麻豆成人精品国产免费 | 国产深夜福利视频在线 | 精品国产福利一区二区 | 免费播放一区二区三区 | 亚洲经典千人经典日产 | 亚洲欧洲日本综合aⅴ在线 | 强辱丰满人妻hd中文字幕 | 一个人看的视频www在线 | 国产亚洲日韩欧美另类第八页 | ass日本丰满熟妇pics | 欧美性猛交内射兽交老熟妇 | 国产免费久久精品国产传媒 | 国内精品久久久久久中文字幕 | 男女下面进入的视频免费午夜 | 一个人看的视频www在线 | 亚洲综合色区中文字幕 | 欧美日韩一区二区三区自拍 | 日韩成人一区二区三区在线观看 | 伊人久久婷婷五月综合97色 | 欧美精品在线观看 | 亚洲爆乳无码专区 | 国产精品久久久久久亚洲毛片 | 亚洲日韩乱码中文无码蜜桃臀网站 | 无码免费一区二区三区 | 无码av免费一区二区三区试看 | 99er热精品视频 | 99精品国产综合久久久久五月天 | 亚洲欧美综合区丁香五月小说 | 色综合久久中文娱乐网 | 日本精品高清一区二区 | 欧美激情内射喷水高潮 | 国产精品人人爽人人做我的可爱 | 成人免费视频视频在线观看 免费 | 亚洲人成人无码网www国产 | av无码电影一区二区三区 | 国产麻豆精品精东影业av网站 | 一本色道婷婷久久欧美 | 精品国产aⅴ无码一区二区 | 天堂久久天堂av色综合 | 久久久精品456亚洲影院 | 一本久道久久综合狠狠爱 | 中文字幕无码乱人伦 | 67194成是人免费无码 | 国产精品多人p群无码 | 国产精品永久免费视频 | 久久zyz资源站无码中文动漫 | 一区二区三区乱码在线 | 欧洲 | 国产精品久久久久久亚洲毛片 | 亚洲男女内射在线播放 | 人妻天天爽夜夜爽一区二区 | 扒开双腿疯狂进出爽爽爽视频 | 久久99精品国产麻豆 | 极品嫩模高潮叫床 | 99精品久久毛片a片 | 性史性农村dvd毛片 | 久久综合狠狠综合久久综合88 | 精品久久久无码人妻字幂 | 亚洲精品一区二区三区在线 | 国产激情一区二区三区 | 亚洲a无码综合a国产av中文 | 日韩精品a片一区二区三区妖精 | 国产精品无码mv在线观看 | 中文字幕无线码 | av人摸人人人澡人人超碰下载 | 精品成在人线av无码免费看 | 97人妻精品一区二区三区 | 日本乱人伦片中文三区 | 日日天干夜夜狠狠爱 | 给我免费的视频在线观看 | 亚洲熟熟妇xxxx | 国产明星裸体无码xxxx视频 | 老太婆性杂交欧美肥老太 | 国产亚洲精品久久久久久久 | 午夜精品久久久内射近拍高清 | 中文精品久久久久人妻不卡 | 国产一区二区三区精品视频 | 国产真实乱对白精彩久久 | 国产精品怡红院永久免费 | 天堂а√在线地址中文在线 | 76少妇精品导航 | 欧美一区二区三区 | √天堂资源地址中文在线 | 久久无码专区国产精品s | 伊在人天堂亚洲香蕉精品区 | 国产精品-区区久久久狼 | 正在播放东北夫妻内射 | 中文字幕精品av一区二区五区 | 18黄暴禁片在线观看 | 天天摸天天透天天添 | 日韩精品成人一区二区三区 | 亚洲国产精品无码一区二区三区 | 精品少妇爆乳无码av无码专区 | 精品久久久无码人妻字幂 | 亚洲一区二区三区播放 | 欧美性猛交xxxx富婆 | 性欧美熟妇videofreesex | 人人妻人人澡人人爽人人精品浪潮 | 高清国产亚洲精品自在久久 | 无码人妻丰满熟妇区毛片18 | 俺去俺来也在线www色官网 | 亚洲の无码国产の无码影院 | 日本一区二区三区免费高清 | 丰满人妻一区二区三区免费视频 | 一二三四社区在线中文视频 | 图片区 小说区 区 亚洲五月 | 97夜夜澡人人爽人人喊中国片 | 亚洲性无码av中文字幕 | 亚洲色偷偷偷综合网 | 久久精品国产99精品亚洲 | 我要看www免费看插插视频 | 国产综合色产在线精品 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 色诱久久久久综合网ywww | 18无码粉嫩小泬无套在线观看 | 色情久久久av熟女人妻网站 | 亚洲国产高清在线观看视频 | 婷婷丁香五月天综合东京热 | 无码吃奶揉捏奶头高潮视频 | 国产成人综合在线女婷五月99播放 | 少妇太爽了在线观看 | 久久精品丝袜高跟鞋 | 亚洲综合色区中文字幕 | 国产成人无码a区在线观看视频app | 国产另类ts人妖一区二区 | 无码毛片视频一区二区本码 | 中文毛片无遮挡高清免费 | 无码av免费一区二区三区试看 | 亚洲一区二区三区含羞草 | 国产熟妇高潮叫床视频播放 | 亚洲成a人一区二区三区 | 双乳奶水饱满少妇呻吟 | 蜜桃视频插满18在线观看 | 丰腴饱满的极品熟妇 | 久久国产精品精品国产色婷婷 | 女人被男人躁得好爽免费视频 |