日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

AngularDart4.0 指南- 表单

發(fā)布時(shí)間:2023/11/29 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AngularDart4.0 指南- 表单 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

表單是商業(yè)應(yīng)用程序的主流。您可以使用表單登錄,提交幫助請(qǐng)求,下訂單,預(yù)訂航班,安排會(huì)議,并執(zhí)行無數(shù)其他數(shù)據(jù)錄入任務(wù)。

在開發(fā)表單時(shí),創(chuàng)建一個(gè)數(shù)據(jù)錄入體驗(yàn)非常重要,該體驗(yàn)可以通過工作流高效地引導(dǎo)用戶。

開發(fā)表單需要設(shè)計(jì)技巧(超出本頁(yè)面的范圍),以及雙向數(shù)據(jù)綁定,更改跟蹤,驗(yàn)證和錯(cuò)誤處理的框架支持,您將在本頁(yè)面上了解這些信息。

本頁(yè)面向您展示了如何從頭構(gòu)建一個(gè)簡(jiǎn)單的表單。一路上你將學(xué)習(xí)如何:

  • 用組件和模板構(gòu)建一個(gè)Angular表單。
  • 使用ngModel創(chuàng)建讀取和寫入輸入控制值的雙向數(shù)據(jù)綁定。
  • 跟蹤狀態(tài)變化和表單控件的有效性。
  • 使用跟蹤控件狀態(tài)的特殊CSS類提供視覺反饋。
  • 向用戶顯示驗(yàn)證錯(cuò)誤并啟用/禁用表單控件。
  • 使用模板引用變量在HTML元素之間共享信息。

您可以在Plunker中運(yùn)行實(shí)例(查看源代碼)并從那里下載代碼。

模板驅(qū)動(dòng)的形式

您可以通過使用本頁(yè)中描述的特定于表單的指令和技術(shù)在Angular模板語法中編寫模板來構(gòu)建表單。

您也可以使用響應(yīng)式(或模型驅(qū)動(dòng))方法來構(gòu)建表單。 但是,此頁(yè)面重點(diǎn)介紹模板驅(qū)動(dòng)的表單。

您可以使用Angular模板 構(gòu)建幾乎任何表單- 登錄表單,聯(lián)系表單和幾乎任何業(yè)務(wù)表單。 您可以創(chuàng)造性地設(shè)計(jì)控件,將它們綁定到數(shù)據(jù),指定驗(yàn)證規(guī)則和顯示驗(yàn)證錯(cuò)誤,有條件地啟用或禁用特定控件,觸發(fā)內(nèi)置的視覺反饋等等。

Angular通過許多重復(fù)的,模板化的任務(wù)使處理過程變得簡(jiǎn)單。

您將學(xué)習(xí)如何構(gòu)建一個(gè)模板驅(qū)動(dòng)的表單,如下所示:

英雄就業(yè)機(jī)構(gòu)使用這種形式來維護(hù)關(guān)于英雄的個(gè)人信息。 每個(gè)英雄都需要一份工作。 讓正確的英雄與正確的危機(jī)相匹配是公司的使命。

這個(gè)表格中的三個(gè)字段中的兩個(gè)是必需的。 遵循材料設(shè)計(jì)準(zhǔn)則,必填字段帶有星號(hào)(*)。

如果您刪除了英雄名稱,表單將以吸引人注意的風(fēng)格顯示驗(yàn)證錯(cuò)誤:

請(qǐng)注意提交按鈕被禁用,并且輸入控件從綠色變?yōu)榧t色。

您將以小步驟構(gòu)建此表單:

  • 創(chuàng)建英雄模型類。
  • 創(chuàng)建控制表單的組件。
  • 用初始表單布局創(chuàng)建一個(gè)模板。
  • 使用ngModel雙向數(shù)據(jù)綁定語法將數(shù)據(jù)屬性綁定到每個(gè)表單控件。
  • 為每個(gè)表單輸入控件添加一個(gè)ngControl指令。
  • 添加自定義CSS來提供視覺反饋。
  • 顯示和隱藏驗(yàn)證錯(cuò)誤消息。
  • 使用ngSubmit處理表單提交。
  • 禁用窗體的提交按鈕,直到窗體有效。
  • 建立

    按照設(shè)置說明創(chuàng)建一個(gè)名為表單的新項(xiàng)目。

    添加angular_forms

    Angular表單功能位于angular_forms庫(kù)中,該庫(kù)位于其自己的包中。 將該包添加到pubspec依賴項(xiàng):

    創(chuàng)建一個(gè)模型

    當(dāng)用戶輸入表單數(shù)據(jù)時(shí),您將捕獲其更改并更新模型的實(shí)例。 直到你知道模型是什么樣子,你才能布置表格。

    一個(gè)模型可以像“錢包”一樣簡(jiǎn)單,掌握關(guān)于應(yīng)用程序重要事實(shí)的事實(shí)。 這很好地描述了英雄類與三個(gè)必填字段(id, name, power)和一個(gè)可選字段(alterEgo)。

    在lib目錄中,使用給定的內(nèi)容創(chuàng)建以下文件:lib/src/hero.dart

    class Hero {int id;String name, power, alterEgo;Hero(this.id, this.name, this.power, [this.alterEgo]);String toString() => '$id: $name ($alterEgo). Super power: $power'; }

    這是一個(gè)缺乏要求,沒有行為的雞肋模型,對(duì)于演示來說足夠了。

    alterEgo是可選的,所以構(gòu)造函數(shù)可以讓你忽略它。 請(qǐng)注意[this.alterEgo]中的括號(hào)。

    你可以像這樣創(chuàng)建一個(gè)新的英雄:

    var myHero = new Hero(42, 'SkyDog', 'Fetch any object at any distance', 'Leslie Rollover'); print('My hero is ${myHero.name}.'); // "My hero is SkyDog."

    創(chuàng)建一個(gè)基本的表單

    一個(gè)Angular表單有兩個(gè)部分:一個(gè)基于HTML的模板和一個(gè)組件類,以編程方式處理數(shù)據(jù)和用戶交互。 從課程開始,因?yàn)樗?jiǎn)要地說明了英雄編輯可以做什么。

    創(chuàng)建一個(gè)表單組件

    使用給定的內(nèi)容創(chuàng)建以下文件:lib/src/hero_form_component.dart (v1)

    import 'package:angular/angular.dart'; import 'package:angular_forms/angular_forms.dart';import 'hero.dart';const List<String> _powers = const ['Really Smart','Super Flexible','Super Hot','Weather Changer' ];@Component(selector: 'hero-form',templateUrl: 'hero_form_component.html',directives: const [CORE_DIRECTIVES, formDirectives], ) class HeroFormComponent {Hero model = new Hero(18, 'Dr IQ', _powers[0], 'Chuck Overstreet');bool submitted = false;List<String> get powers => _powers;void onSubmit() => submitted = true; }

    這個(gè)組件沒有什么特別之處,沒有任何特定的形式,沒有什么區(qū)別它與你之前寫的任何組件。

    理解這個(gè)組件只需要前面幾頁(yè)中介紹的Angular概念。

    • 代碼導(dǎo)入您剛創(chuàng)建的主Angular庫(kù)和Hero模型。
    • hero-form@Component選擇器值意味著您可以使用<hero-form>元素將此表單放在父模板中。
    • templateUrl屬性指向模板HTML的單獨(dú)文件(您將很快創(chuàng)建)。
    • 您為modelpower定義了模擬數(shù)據(jù)。

    順便說一句,您可以注入數(shù)據(jù)服務(wù)來獲取和保存真實(shí)數(shù)據(jù),或者將這些屬性作為輸入和輸出(請(qǐng)參閱“模板語法”頁(yè)面中的輸入和輸出屬性)來綁定到父組件。 這不是現(xiàn)在的問題,這些未來的變化不會(huì)影響表單。

    修改應(yīng)用程序組件

    AppComponent是應(yīng)用程序的根組件。 它將承載HeroFormComponent

    將初學(xué)者應(yīng)用版本的內(nèi)容替換為以下內(nèi)容:lib/app_component.dart

    import 'package:angular/angular.dart';import 'src/hero_form_component.dart';@Component(selector: 'my-app',template: '<hero-form></hero-form>',directives: const [HeroFormComponent], ) class AppComponent {}

    創(chuàng)建一個(gè)初始表單模板

    使用以下內(nèi)容創(chuàng)建模板文件:lib/src/hero_form_component.html (start)

    <div class="container"><h1>Hero Form</h1><form><div class="form-group"><label for="name">Name&nbsp;*</label><input type="text" class="form-control" id="name" required></div><div class="form-group"><label for="alterEgo">Alter Ego</label><input type="text" class="form-control" id="alterEgo"></div><div class="row"><div class="col-auto"><button type="submit" class="btn btn-primary">Submit</button></div><small class="col text-right">*&nbsp;Required</small></div></form> </div>

    該語言只是HTML5。 您將展示兩個(gè)Hero字段,namealterEgo,并在輸入框中將其打開以供用戶輸入。

    Name <input>控件具有HTML5必需屬性; Alter Ego <input>控件什么也不做,因?yàn)?span style="color:#008000;">alterEgo是可選的。

    您在底部添加了一個(gè)提交按鈕,其中有一些類用于樣式。

    你還沒有使用Angular。 沒有綁定或額外的指令,只是布局。

    在模板驅(qū)動(dòng)的表單中,如果已經(jīng)導(dǎo)入了angular_forms庫(kù),則不必為了使用庫(kù)功能而對(duì)<form>標(biāo)記執(zhí)行任何操作。 繼續(xù)看看這是如何工作的。

    刷新瀏覽器。 你會(huì)看到一個(gè)簡(jiǎn)單的,沒有樣式的表單。

    表單的樣式

    一般的CSS類containerbtn來自Bootstrap。 Bootstrap還具有form-specific的類,包括form-controlform-group。 一起,這些給表單了一些樣式。

    Angular可不使用Bootstrap類或任何外部庫(kù)的樣式。 Angular的應(yīng)用程序可以使用任何CSS庫(kù)或不使用。

    通過將以下鏈接插入到index.html的<head>中來添加Bootstrap樣式:web/index.html (bootstrap)

    <link rel="stylesheet"href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css"integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M"crossorigin="anonymous">

    刷新瀏覽器。 你會(huì)看到一個(gè)樣式化的表單!

    使用* ngFor添加powers

    英雄必須從一個(gè)固定的機(jī)構(gòu)批準(zhǔn)的權(quán)力列表中選擇一個(gè)超級(jí)大國(guó)。 您在內(nèi)部維護(hù)該列表(在HeroFormComponent中)。

    您將在表單中添加一個(gè)select,并使用ngFor(先前在“顯示數(shù)據(jù)”頁(yè)面中看到的一種技術(shù))將選項(xiàng)綁定到powers列表。

    在Alter Ego?group下方添加以下HTML:lib/src/hero_form_component.html (powers)

    <div class="form-group"><label for="power">Hero Power&nbsp;*</label><select class="form-control" id="power" required><option *ngFor="let p of powers" [value]="p">{{p}}</option></select> </div>

    這段代碼重復(fù)列表中每個(gè)power?的<option>標(biāo)簽。 p模板輸入變量在每次迭代中是不同的power; 您使用插值語法顯示其名稱。

    與ngModel的雙向數(shù)據(jù)綁定

    現(xiàn)在運(yùn)行應(yīng)用程序有點(diǎn)令人失望。

    你沒有看到英雄數(shù)據(jù),因?yàn)槟氵€沒有綁定到英雄。 你知道如何從早期的頁(yè)面做到這一點(diǎn)。 顯示數(shù)據(jù)教導(dǎo)屬性綁定。 用戶輸入顯示如何使用事件綁定監(jiān)聽DOM事件以及如何使用顯示的值更新組件屬性。

    現(xiàn)在您需要同時(shí)顯示,聆聽和提取。

    你可以使用你已經(jīng)知道的技術(shù),但是你會(huì)使用新的[(ngModel)]語法,這使得綁定到模型的表單變得容易。

    找到Name的<input>標(biāo)簽,并像下面這樣更新它:lib/src/hero_form_component.html (name)

    <!-- TODO: remove the next diagnostic line --> <mark>{{model.name}}</mark><hr> <div class="form-group"><label for="name">Name&nbsp;*</label><input type="text" class="form-control" id="name" required[(ngModel)]="model.name"ngControl="name"> </div>

    你在form-group之前添加了一個(gè)診斷插值,所以你可以看到你在做什么。 當(dāng)你完成的時(shí)候,你留下一張紙條扔掉它。

    關(guān)注綁定語法:[(ngModel)] =“...”。

    現(xiàn)在運(yùn)行應(yīng)用程序并輸入名稱輸入,添加和刪除字符。 您會(huì)看到這些字符出現(xiàn)在診斷文本中并消失。 在某個(gè)時(shí)候,它可能看起來像這樣:

    診斷結(jié)果表明數(shù)值確實(shí)是從輸入流向模型,再返回。

    這是雙向的數(shù)據(jù)綁定。 有關(guān)更多信息,請(qǐng)參見模板語法頁(yè)面上的與NgModel的雙向綁定。

    請(qǐng)注意,您還為<input>標(biāo)記添加了一個(gè)ngControl指令,并將其設(shè)置為“name”,這對(duì)于英雄的名字是有意義的。 任何唯一值將會(huì)這樣做,但使用描述性名稱是有幫助的。 將[(ngModel)]與表單結(jié)合使用時(shí),定義ngControl指令是一項(xiàng)要求。

    在內(nèi)部,Angular創(chuàng)建NgFormControl實(shí)例,并使用Angular附加到<form>標(biāo)簽的NgForm指令注冊(cè)它們。 每個(gè)NgFormControl都是在您分配給ngControl指令的名稱下注冊(cè)的。 本指南稍后將詳細(xì)介紹NgForm。

    Alter EgoHero Power上添加類似的[(ngModel)]綁定和ngControl指令。

    model替換診斷綁定表達(dá)式。 通過這種方式,您可以確認(rèn)雙向數(shù)據(jù)綁定適用于整個(gè)英雄模型。

    修改后,表單的核心應(yīng)該是這樣的:lib/src/hero_form_component.html (controls)

    <!-- TODO: remove the next diagnostic line --> <mark>{{model}}</mark><hr> <div class="form-group"><label for="name">Name&nbsp;*</label><input type="text" class="form-control" id="name" required[(ngModel)]="model.name"ngControl="name"> </div> <div class="form-group"><label for="alterEgo">Alter Ego</label><input type="text" class="form-control" id="alterEgo"[(ngModel)]="model.alterEgo"ngControl="alterEgo"> </div> <div class="form-group"><label for="power">Hero Power&nbsp;*</label><select class="form-control" id="power" required[(ngModel)]="model.power"ngControl="power"><option *ngFor="let p of powers" [value]="p">{{p}}</option></select> </div>
    • 每個(gè)input元素都有一個(gè)id屬性,label元素的for屬性使用它來匹配labelinput控件。
    • 每個(gè)input元素都有一個(gè)ngControl指令,Angular表單需要用這個(gè)指令在表單上注冊(cè)控件。

    如果您現(xiàn)在運(yùn)行應(yīng)用程序并更改每個(gè)英雄model屬性,表單可能會(huì)顯示如下:

    靠近表單頂部的診斷確認(rèn)所有的更改都反映在model中。

    從模板中刪除診斷綁定,因?yàn)樗呀?jīng)達(dá)到了目的。

    根據(jù)控制狀態(tài)給出視覺反饋

    使用CSS和類綁定,您可以更改表單控件的外觀以反映其狀態(tài)。

    跟蹤控制狀態(tài)

    Angular表單控件可以告訴您用戶是否觸摸了該控件,值是否改變,或者該值是否失效。

    每個(gè)Angular控制(NgControl)都跟蹤自己的狀態(tài),并通過以下字段成員使?fàn)顟B(tài)可供檢查:

    • dirtypristine表明控制的值是否已經(jīng)改變。
    • toucheduntouched指示控件是否被訪問過。
    • valid反映了控制值的有效性。

    樣式控件

    有效的控制屬性是最有趣的,因?yàn)楫?dāng)一個(gè)控制值無效時(shí),你想發(fā)送一個(gè)強(qiáng)烈的視覺信號(hào)。 要?jiǎng)?chuàng)建這樣的視覺反饋,您將使用Bootstrap自定義表單類?is-validis-invalid

    將名為name的模板引用變量添加到Name <input>標(biāo)記中。 使用name和類綁定來有條件地分配適當(dāng)?shù)谋韱斡行灶悺?/p>

    臨時(shí)將另一個(gè)名為spy的模板引用變量添加到Name <input>標(biāo)記,并使用它顯示輸入的CSS類。

    lib/src/hero_form_component.html (name)

    <input type="text" class="form-control" id="name" required[(ngModel)]="model.name"#name="ngForm"#spy[class.is-valid]="name.valid"[class.is-invalid]="!name.valid"ngControl="name"> <!-- TODO: remove the next diagnostic line --> {{spy.className}}

    模板引用變量

    spy模板引用變量綁定到<input> DOM元素,而name變量(通過#name =“ngForm”語法)綁定到與input元素關(guān)聯(lián)的NgModel

    為什么“ngForm”? 指令的exportAs屬性告訴Angular如何將引用變量鏈接到指令。 您將name設(shè)置為“ngForm”,因?yàn)?span style="color:#008000;">ngModel指令的exportAs屬性是“ngForm”。

    刷新瀏覽器,然后按照下列步驟操作:

    1.看看名字輸入。

    • 它有一個(gè)綠色的邊框。
    • 它具有類形式控制和有效性。

    2.通過添加一些字符來更改name。 類保持不變。
    3.刪除名稱。

    • 輸入框邊框變?yōu)榧t色。
    • is-invalid類替換為is-valid。

    刪除#spy模板引用變量和使用它的診斷。

    作為類綁定的替代方法,可以使用NgClass指令來設(shè)置控件的樣式。 首先,添加以下方法來設(shè)置控件的依賴于狀態(tài)的CSS類名稱:

    lib/src/hero_form_component.dart (setCssValidityClass)

    Map<String, bool> setCssValidityClass(NgControl control) {final validityClass = control.valid == true ? 'is-valid' : 'is-invalid';return {validityClass: true}; }

    使用此方法返回的映射值綁定到NgClass指令 - 在模板語法頁(yè)面中詳細(xì)了解此指令及其替代方法。

    lib/src/hero_form_component.html (power)

    <select class="form-control" id="power" required[(ngModel)]="model.power"#power="ngForm"[ngClass]="setCssValidityClass(power)"ngControl="power"><option *ngFor="let p of powers" [value]="p">{{p}}</option> </select>

    顯示并隱藏驗(yàn)證錯(cuò)誤消息


    你可以改善表格。 名稱輸入是必需的,清除它將框的輪廓變?yōu)榧t色。 這說明有些事情是錯(cuò)的,但用戶不知道什么是錯(cuò)的,或者該怎么做。 利用控件的狀態(tài)來顯示有用的消息。

    使用有效的和原始的狀態(tài)

    當(dāng)用戶刪除名稱時(shí),表單應(yīng)該如下所示:

    為了達(dá)到這個(gè)效果,在Name <input>之后立即添加下面的<div>

    lib/src/hero_form_component.html (hidden error message)

    <div [hidden]="name.valid || name.pristine" class="invalid-feedback">Name is required </div>

    刷新瀏覽器并刪除Name?輸入。 顯示錯(cuò)誤消息。

    您可以通過根據(jù)名稱控制的狀態(tài)設(shè)置<div>的隱藏屬性來控制錯(cuò)誤消息的可見性。

    在這個(gè)例子中,當(dāng)控件是有效的或者原始的時(shí)候隱藏消息 - “pristine”意味著用戶沒有改變這個(gè)值,因?yàn)樗且赃@種形式顯示的。

    用戶體驗(yàn)是開發(fā)者的選擇

    有些開發(fā)人員希望消息始終顯示。 如果您忽略原始狀態(tài),則只有在該值有效時(shí)才會(huì)隱藏該消息。 如果您使用新(空白)英雄或無效英雄到達(dá)此組件,則在您執(zhí)行任何操作之前,您將立即看到錯(cuò)誤消息。

    有些開發(fā)人員希望僅在用戶進(jìn)行無效更改時(shí)顯示消息。 當(dāng)控件是“原始的”時(shí)隱藏消息實(shí)現(xiàn)了這個(gè)目標(biāo)。 當(dāng)您向表單添加一個(gè)“清除”按鈕時(shí),您會(huì)看到此選項(xiàng)的重要性。

    英雄Alter Ego是可選的,所以你可以不用關(guān)那個(gè)。

    英雄power選擇是必需的。 如果需要,可以將相同類型的錯(cuò)誤消息添加到<select>中,但這不是必須的,因?yàn)檫x擇框已經(jīng)將權(quán)限限制為有效值。

    添加一個(gè)清除按鈕

    clear()方法添加到組件類中:lib/src/hero_form_component.dart (clear)

    void clear() {model.name = '';model.power = _powers[0];model.alterEgo = ''; }

    在提交按鈕后面添加一個(gè)帶有點(diǎn)擊事件綁定的清除按鈕:lib/src/hero_form_component.html (Clear button)

    <button (click)="clear()" type="button" class="btn">Clear </button>

    刷新瀏覽器。 點(diǎn)擊清除按鈕。 文本字段變?yōu)榭瞻?#xff0c;如果您更改了power,它將恢復(fù)為默認(rèn)值。

    用ngSubmit提交表單

    用戶應(yīng)該能夠在填寫表單后提交這個(gè)表單。表單底部的Submit按鈕本身不做任何事情,但是由于它的類型(type =“submit”),它會(huì)觸發(fā)一個(gè)表單提交。

    表單提交目前是無用的。 為了使它有用,將表單組件的onSubmit()方法分配給表單的ngSubmit事件綁定:

    <form (ngSubmit)="onSubmit()" #heroForm="ngForm">

    請(qǐng)注意模板引用變量#heroForm。 正如前面所解釋的,變量heroForm被綁定到整體管理表單的NgForm指令。

    NgForm指令

    Angular自動(dòng)創(chuàng)建并附加一個(gè)NgForm指令給<form>標(biāo)簽。

    NgForm指令補(bǔ)充表單元素的附加功能。 它包含用ngModelngControl指令為元素創(chuàng)建的控件,并監(jiān)視它們的屬性,包括它們的有效性。

    您將通過heroForm變量將表單的整體有效性綁定到按鈕的disabled屬性:

    <button [disabled]="!heroForm.form.valid" type="submit" class="btn btn-primary">Submit </button>

    刷新瀏覽器。 你會(huì)發(fā)現(xiàn)這個(gè)按鈕是啟用的,盡管它沒有做任何有用的事情。

    現(xiàn)在,如果您刪除Name,則違反了“必需的”規(guī)則,這在錯(cuò)誤消息中正確記錄。 提交按鈕也被禁用。

    沒有留下深刻印象? 想一想。 如果沒有Angular的幫助,你需要做什么才能將按鈕的啟用/禁用狀態(tài)連接到表單的有效性?

    對(duì)你來說,這很簡(jiǎn)單:

    • 在(增強(qiáng)的)表單元素上定義一個(gè)模板引用變量。
    • 在多處的按鈕中引用該變量。

    顯示Model(可選)

    提交表單目前沒有視覺效果。

    如預(yù)期的演示。 增加代碼過后的demo不會(huì)教你任何關(guān)于表單的新東西。 但是這是一個(gè)鍛煉一些新獲得的綁定技巧的機(jī)會(huì)。 如果您不感興趣,請(qǐng)?zhí)帘卷?yè)的摘要。

    作為一種視覺效果,您可以隱藏?cái)?shù)據(jù)輸入?yún)^(qū)域并顯示其他內(nèi)容。

    將表單封裝在<div>中,并將其hidden屬性綁定到HeroFormComponent.submitted屬性。

    lib/src/hero_form_component.html (excerpt)

    <div [hidden]="submitted"><h1>Hero Form</h1><form (ngSubmit)="onSubmit()" #heroForm="ngForm"></form> </div>

    該表單從一開始就是可見的,因?yàn)樵谔峤槐韱沃?#xff0c;提交的屬性為false,因?yàn)?span style="color:#008000;">HeroFormComponent中的片段顯示為:lib/src/hero_form_component.dart (submitted)

    bool submitted = false;void onSubmit() => submitted = true;

    現(xiàn)在在剛剛寫的<div>包裝器下面添加下面的HTML:lib/src/hero_form_component.html (submitted)

    <div [hidden]="!submitted"><h1>Hero data</h1><table class="table"><tr><th>Name</th><td>{{model.name}}</td></tr><tr><th>Alter Ego</th><td>{{model.alterEgo}}</td></tr><tr><th>Power</th><td>{{model.power}}</td></tr></table><button (click)="submitted=false" class="btn btn-primary">Edit</button> </div>

    刷新瀏覽器并提交表單。 提交的標(biāo)志變?yōu)檎?#xff0c;表格消失。 您將看到表格中顯示的英雄模型值(只讀)。

    該視圖包含一個(gè)編輯按鈕,其單擊事件綁定將清除提交的標(biāo)志。 當(dāng)您單擊編輯按鈕時(shí),該表消失,并且可編輯的表單重新出現(xiàn)。

    概要

    Angular表單為數(shù)據(jù)修改,驗(yàn)證等提供支持。 在此頁(yè)面中,您學(xué)習(xí)了如何使用以下功能:

    • 一個(gè)HTML表單模板和一個(gè)帶有@Component注解的表單組件類。
    • 表單提交,通過ngSubmit事件綁定處理。
    • 模板引用變量,如heroFormname
    • 雙向數(shù)據(jù)綁定([(ngModel)])。
    • 用于驗(yàn)證和表單元素更改跟蹤的NgControl?指令。
    • 輸入控件(通過模板引用變量訪問)的valid?屬性,用于檢查控件有效性以及顯示/隱藏錯(cuò)誤消息。
    • NgForm.form的有效性來設(shè)置提交按鈕的啟用狀態(tài)。
    • 自定義CSS類為用戶提供有關(guān)控制狀態(tài)的可視反饋。

    最終的項(xiàng)目文件夾結(jié)構(gòu)應(yīng)該如下所示:

    以下是應(yīng)用程序最終版本的代碼:

    lib/app_component.dart

    import 'package:angular/angular.dart'; import 'src/hero_form_component.dart'; @Component(selector: 'my-app',template: '<hero-form></hero-form>',directives: const [HeroFormComponent], ) class AppComponent {}

    lib/src/hero.dart?

    class Hero {int id;String name, power, alterEgo;Hero(this.id, this.name, this.power, [this.alterEgo]);String toString() => '$id: $name ($alterEgo). Super power: $power'; }

    lib/src/hero_form_component.dart

    import 'package:angular/angular.dart'; import 'package:angular_forms/angular_forms.dart'; import 'hero.dart'; const List<String> _powers = const ['Really Smart','Super Flexible','Super Hot','Weather Changer' ]; @Component(selector: 'hero-form',templateUrl: 'hero_form_component.html',directives: const [CORE_DIRECTIVES, formDirectives], ) class HeroFormComponent {Hero model = new Hero(18, 'Dr IQ', _powers[0], 'Chuck Overstreet');bool submitted = false;List<String> get powers => _powers;void onSubmit() => submitted = true;/// Returns a map of CSS class names representing the state of [control].Map<String, bool> setCssValidityClass(NgControl control) {final validityClass = control.valid == true ? 'is-valid' : 'is-invalid';return {validityClass: true};}void clear() {model.name = '';model.power = _powers[0];model.alterEgo = '';} }

    lib/src/hero_form_component.html

    <div class="container"><div [hidden]="submitted"><h1>Hero Form</h1><form (ngSubmit)="onSubmit()" #heroForm="ngForm"><div class="form-group"><label for="name">Name&nbsp;*</label><input type="text" class="form-control" id="name" required[(ngModel)]="model.name"#name="ngForm"[class.is-valid]="name.valid"[class.is-invalid]="!name.valid"ngControl="name"><div [hidden]="name.valid || name.pristine" class="invalid-feedback">Name is required</div></div><div class="form-group"><label for="alterEgo">Alter Ego</label><input type="text" class="form-control" id="alterEgo"[(ngModel)]="model.alterEgo"ngControl="alterEgo"></div><div class="form-group"><label for="power">Hero Power&nbsp;*</label><select class="form-control" id="power" required[(ngModel)]="model.power"#power="ngForm"[ngClass]="setCssValidityClass(power)"ngControl="power"><option *ngFor="let p of powers" [value]="p">{{p}}</option></select></div><div class="row"><div class="col-auto"><button [disabled]="!heroForm.form.valid" type="submit" class="btn btn-primary">Submit</button><button (click)="clear()" type="button" class="btn">Clear</button></div><small class="col text-right">*&nbsp;Required</small></div></form></div><div [hidden]="!submitted"><h1>Hero data</h1><table class="table"><tr><th>Name</th><td>{{model.name}}</td></tr><tr><th>Alter Ego</th><td>{{model.alterEgo}}</td></tr><tr><th>Power</th><td>{{model.power}}</td></tr></table><button (click)="submitted=false" class="btn btn-primary">Edit</button></div> </div>

    web/index.html

    <!DOCTYPE html> <html><head><script>// WARNING: DO NOT set the <base href> like this in production!// Details: https://webdev.dartlang.org/angular/guide/router(function () {var m = document.location.pathname.match(/^(\/[-\w]+)+\/web($|\/)/);document.write('<base href="' + (m ? m[0] : '/') + '" />');}());</script><title>Hero Form</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet"href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css"integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M"crossorigin="anonymous"><link rel="stylesheet" href="styles.css"><link rel="icon" type="image/png" href="favicon.png"><script defer src="main.dart" type="application/dart"></script><script defer src="packages/browser/dart.js"></script></head><body><my-app>Loading ...</my-app></body> </html>

    web/main.dart

    import 'package:angular/angular.dart'; import 'package:forms/app_component.dart'; void main() {bootstrap(AppComponent); }

    ?

    轉(zhuǎn)載于:https://my.oschina.net/u/3647851/blog/1585929

    總結(jié)

    以上是生活随笔為你收集整理的AngularDart4.0 指南- 表单的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    91av电影在线 | 久操视频在线免费看 | 国产主播大尺度精品福利免费 | 四虎影视欧美 | 激情视频区 | 免费不卡中文字幕视频 | 五月婷婷色丁香 | 日日爽天天操 | 国产精品久久久久久久久久久杏吧 | 99久久综合国产精品二区 | 精品久久久久久国产 | 精品国产三级a∨在线欧美 免费一级片在线观看 | av三级av | 久久综合免费 | 六月丁香婷婷在线 | 亚洲综合日韩在线 | 欧美成人手机版 | 国产精品99久久99久久久二8 | 中文字幕第一页av | 国产精品99久久久久久久久 | 国产字幕在线观看 | 免费色av | 五月天综合色激情 | 992tv又爽又黄的免费视频 | 亚洲国产剧情av | 狠狠色丁香婷婷综合久久片 | 麻豆小视频在线观看 | 国产精品色婷婷视频 | 色狠狠婷婷 | 青青草久草在线 | 国产h片在线观看 | 97超碰福利久久精品 | 国产精品久久久99 | 成人午夜电影网站 | 一区二区在线电影 | 色综合天天天天做夜夜夜夜做 | 国内视频 | 久久国产福利 | 四虎成人精品在永久免费 | 亚洲国产日韩精品 | 精品国产电影一区二区 | 激情综合色播五月 | av品善网| 日韩免费一级电影 | 免费开视频| 91资源在线 | 精品99久久久久久 | 草久久久| 97视频网址 | 久久乐九色婷婷综合色狠狠182 | 五月天久久狠狠 | 91精品成人久久 | 亚洲va欧美va人人爽春色影视 | 在线日韩一区 | 国产精品电影在线 | 亚洲欧洲精品一区二区 | 99久久影视 | 色www免费视频 | 一区二区三区视频网站 | 国产手机免费视频 | 亚洲伊人第一页 | 国产中文字幕在线看 | 免费视频国产 | 国产久草在线观看 | 欧美激情第十页 | 亚洲精品福利在线观看 | 日本三级久久久 | www.久久精品视频 | 天天爽天天爽天天爽 | 91精品视频免费 | 久久99精品久久久久久秒播蜜臀 | 久久久久久国产一区二区三区 | 久精品一区 | 亚洲精品九九 | 天天草天天草 | 国产黄色片一级三级 | 在线 你懂 | 精品国产人成亚洲区 | 一区二区中文字幕在线 | 九九九九九国产 | 狠狠躁18三区二区一区ai明星 | 欧美性色黄 | 六月婷婷久香在线视频 | av动图| 日韩av在线一区二区 | 天天草天天操 | 五月天激情综合网 | 国产精品一区免费看8c0m | 国内精品久久久久国产 | 天天艹天天 | 免费视频99 | 天天艹日日干 | 日韩免费大片 | 午夜久久电影网 | 午夜久久视频 | 精品视频在线观看 | 国产精品久久久久久69 | 日韩黄色一级电影 | 91人人爽人人爽人人精88v | 日韩高清精品一区二区 | 久久久国产毛片 | 成人在线观看资源 | 天天操天天摸天天射 | 国产精品99久久久久久武松影视 | av在线h| 最新av网址大全 | 在线不卡中文字幕播放 | av品善网 | 久久影院亚洲 | 成人小视频在线观看免费 | 中文字幕视频免费观看 | av日韩不卡 | 久草在线观看视频免费 | 国产视频一区在线 | 天天干天天天天 | 91pony九色丨交换 | av在线免费不卡 | 97在线播放| 天天干天天操av | 亚洲欧美偷拍另类 | 久久99精品波多结衣一区 | 国产三级午夜理伦三级 | 丁五月婷婷| 国产手机在线观看 | 国内精品小视频 | 91黄色免费网站 | 人人爱夜夜操 | 国产一区二区影院 | 国产字幕av| 国产999精品久久久 免费a网站 | 欧美analxxxx | 免费在线成人av | 日韩成人精品 | 成年人在线观看 | 国产一二三四在线观看视频 | 国内精品久久影院 | 婷婷六月久久 | 五月天婷婷免费视频 | 欧美午夜久久久 | 亚洲精品在线网站 | 国产 一区二区三区 在线 | 久久精品99北条麻妃 | 日韩在线二区 | www免费视频com| 国产精品视频大全 | 欧美一二区视频 | 国产精品久久久久久久久久久免费 | 欧美与欧洲交xxxx免费观看 | 国产天天综合 | 国产又粗又长的视频 | 国产视频亚洲视频 | 西西444www大胆高清图片 | 色婷婷激婷婷情综天天 | 亚洲最新视频在线播放 | 2020天天干天天操 | 男女视频久久久 | 色婷婷狠狠18 | 免费黄色激情视频 | 久久久久久久99精品免费观看 | 亚洲精品久久久久久中文传媒 | 中文字幕亚洲国产 | 极品国产91在线网站 | 国产91学生粉嫩喷水 | 操操日| 九九热视频在线免费观看 | 69视频在线 | 日韩av电影国产 | 国产伦精品一区二区三区免费 | 天天综合色天天综合 | 国产精品手机在线 | 天天曰天天| 丰满少妇一级片 | 亚洲作爱视频 | 国产午夜一区 | 丰满少妇在线观看 | 日韩在线观看一区二区三区 | 国产九色视频在线观看 | 久久久久国产精品一区二区 | 天天色天天搞 | 亚洲欧美日韩一区二区三区在线观看 | 在线a人v观看视频 | 欧美日韩精品在线观看 | 国产免费观看久久 | 国产精品免费小视频 | 免费av观看网站 | 免费男女羞羞的视频网站中文字幕 | 中文字幕在线视频免费播放 | 中文字幕欧美日韩va免费视频 | 麻豆一区二区三区视频 | 91人人视频在线观看 | 午夜精品福利在线 | 亚洲特级片 | 欧美日韩在线观看一区 | 成人久久精品视频 | 日一日干一干 | 最近中文字幕完整高清 | 日本精品视频在线观看 | 亚洲无吗视频在线 | 亚洲激情婷婷 | 国产精品igao视频网网址 | 深爱婷婷网 | 国产精品色 | 黄色亚洲免费 | a色视频 | 98超碰在线观看 | 亚洲久草视频 | 亚洲综合成人在线 | 日本天天色 | av观看久久久 | 日韩 在线 | 国产精品久久久区三区天天噜 | 亚洲黄色在线 | 四虎精品成人免费网站 | 日本超碰在线 | 国产精品免费一区二区 | 偷拍视频一区 | 在线观看视频黄色 | 九九久 | 97视频免费在线 | 久久精品美女视频 | 日夜夜精品视频 | 国产精品中文字幕在线 | 亚洲第一区在线观看 | 日日弄天天弄美女bbbb | 色婷婷精品 | av千婊在线免费观看 | 天天舔天天射天天操 | av电影不卡 | 中文字幕资源网在线观看 | 久久久精品一区二区三区 | 精品一区二三区 | 日韩精品高清视频 | 亚洲干视频在线观看 | 毛片视频网址 | 国产精品理论片在线观看 | 在线免费视频a | 91九色成人蝌蚪首页 | 免费的国产精品 | 天天色天天上天天操 | 日韩大片在线播放 | 久久精美视频 | 日韩视频在线观看视频 | 国产色 在线 | 精品国产一区二区三区久久久 | 日韩精品不卡在线 | 国产一区二区在线播放 | av免费看看 | 91在线最新 | www.天天操.com | av黄色免费网站 | 国产91影视| 一区二区三区四区不卡 | 国产午夜三级一区二区三桃花影视 | 综合网色 | 国产精品美女毛片真酒店 | 国产麻豆剧果冻传媒视频播放量 | 欧美一级免费片 | 亚洲人人精品 | 亚洲激情六月 | 超碰在线97观看 | 国内精品久久久久影院一蜜桃 | 麻豆传媒视频在线播放 | 亚洲精品久久久蜜桃 | 日韩欧美网址 | 日韩一区二区三区高清免费看看 | 国产一区在线播放 | 九九热中文字幕 | 成人午夜免费福利 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 免费看一及片 | 婷婷六月网 | 中文字幕第一页在线视频 | www.玖玖玖| 97视频在线观看网址 | 久久久国产高清 | 亚洲三级视频 | 久久综合狠狠综合 | 成人久久免费 | 久久国色夜色精品国产 | 欧美韩国日本在线观看 | 日韩午夜在线播放 | 美女视频永久黄网站免费观看国产 | 久久亚洲影院 | 亚洲第一色 | 精品免费视频 | 亚洲精品国产日韩 | 免费看污污视频的网站 | 亚洲精品乱码久久久久久久久久 | 免费看的黄色片 | 久久久久久久久免费视频 | 97夜夜澡人人双人人人喊 | 五月天激情视频在线观看 | 亚洲国产精选 | 韩国av在线播放 | 最近更新好看的中文字幕 | www免费在线观看 | 99这里都是精品 | 久久久网址 | 日本一区二区三区视频在线播放 | 国产精品99久久久久久武松影视 | 一级免费黄色 | 色婷婷av在线 | 日韩欧美精品一区二区 | 又黄又爽又湿又无遮挡的在线视频 | 国产视频99 | 成人午夜电影免费在线观看 | 不卡的av电影在线观看 | 97国产在线 | 99在线观看免费视频精品观看 | www.av免费观看 | 久久久影院官网 | 国产福利91精品张津瑜 | 亚洲精品字幕在线 | 一区二区三区四区精品视频 | 最新日韩视频 | 国产v在线| 色视频在线免费观看 | 色偷偷88欧美精品久久久 | 98涩涩国产露脸精品国产网 | 久久中文字幕在线视频 | 久久精品国产精品亚洲 | 久久超 | 99福利片 | 色免费在线 | 精品一区精品二区 | 天天做天天爱天天综合网 | 最新国产一区二区三区 | 日本公乱妇视频 | 亚洲精品tv久久久久久久久久 | 久久躁日日躁aaaaxxxx | 欧美成人h版电影 | 91av原创| 成年人黄色免费网站 | 欧美黄网站 | 久久99国产精品免费 | 91av视频在线免费观看 | 一区中文字幕在线观看 | 久久午夜电影 | 九九精品视频在线看 | 国产一级二级在线观看 | 日日干狠狠操 | 天天射一射 | 国产色啪 | 欧美日韩国产精品一区二区 | 中文字幕有码在线观看 | 77国产精品 | 亚洲视频资源在线 | 国产在线精品区 | 久久99久久99精品免观看软件 | 午夜视频欧美 | 四虎成人精品永久免费av九九 | 日日麻批40分钟视频免费观看 | 日韩av成人免费看 | 国产精品一区二区三区在线看 | 一区三区视频在线观看 | 成人av电影免费观看 | 亚洲综合在线观看视频 | 国产精品免费观看国产网曝瓜 | 亚洲精品国产精品国自产在线 | 毛片视频电影 | 一区二区不卡高清 | 麻花豆传媒mv在线观看网站 | 国产又粗又猛又黄 | 丁香激情视频 | 91麻豆高清视频 | 亚洲黄色免费观看 | 热久久免费国产视频 | 综合激情伊人 | 久久99久久99精品免视看婷婷 | 欧美巨乳网 | 欧美最新大片在线看 | 亚洲国产精品资源 | 丁香婷婷深情五月亚洲 | 国产成人一级 | 91av视频免费在线观看 | 一级黄色片毛片 | 午夜av免费 | 免费观看久久 | 国产美女精品视频 | 麻豆超碰| 正在播放 久久 | 日韩精品视频久久 | 久久成人国产精品免费软件 | 中文av影院 | 深夜男人影院 | 激情综合站 | 精品国产乱子伦一区二区 | 久草在线视频网站 | 在线观看中文字幕av | 黄色在线观看免费 | 亚洲日本欧美在线 | 色999视频| 五月天婷婷在线观看视频 | 在线视频中文字幕一区 | 日韩久久精品一区二区三区下载 | av播放在线| 免费黄a大片 | 狠狠狠色丁香综合久久天下网 | 欧美久久久 | 午夜天使| 久久一区二区三区日韩 | 精品1区二区 | 黄网站大全 | 久久精品99北条麻妃 | 亚洲精品久久久久久久不卡四虎 | 久久成人在线视频 | 成人国产精品av | 91在线视频免费91 | 亚洲欧美国产精品18p | 色视频网站在线观看一=区 a视频免费在线观看 | 在线观看视频三级 | 久久蜜臀av| 中文字幕a在线 | 国产福利资源 | 国产精品久久久久影院 | a久久久久久 | 狠狠干天天操 | 久久久久久久久久久久亚洲 | 国产精品成人一区二区三区吃奶 | 国产日韩精品在线 | 中文字幕刺激在线 | 中文字幕免费高清在线 | 久久综合九色 | 国产精品自产拍在线观看蜜 | 午夜免费在线观看 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产视频欧美视频 | 久久亚洲专区 | 日日精品 | 91热这里只有精品 | 天天操福利视频 | 黄色av电影免费观看 | 婷婷视频在线 | 96精品高清视频在线观看软件特色 | 亚洲精区二区三区四区麻豆 | 亚洲男模gay裸体gay | 久久国产精品视频观看 | 中文字幕一区在线观看视频 | 国产精品美女毛片真酒店 | 国产专区欧美专区 | 麻豆精品传媒视频 | 日本中文字幕高清 | 亚洲人在线视频 | 欧美精品视 | 欧美精品一二 | 亚洲精品在线一区二区三区 | 精品久久久久久久久久国产 | 久久综合五月天 | 久久激情视频网 | 午夜av日韩 | 久色 网 | av在线免费观看网站 | 亚州国产精品久久久 | 免费在线观看不卡av | 中文字幕免费高清在线 | 夜夜嗨av色一区二区不卡 | 国产性天天综合网 | 精品99久久 | 国产免费久久av | 麻豆网站免费观看 | 成人在线视频在线观看 | 视频在线观看日韩 | 亚洲婷婷在线视频 | 亚洲a成人v| 亚洲婷婷丁香 | 91人人插| 国产系列 在线观看 | 九色激情网| 久草视频免费在线播放 | 日韩在线播放视频 | 久久国内精品99久久6app | 日本福利视频在线 | 亚洲欧洲日韩在线观看 | 人人天天夜夜 | 日韩精品专区 | 久久香蕉电影 | 99av在线视频 | 91丨九色丨高潮丰满 | 在线免费国产视频 | av无限看| 国产黄av | 国精产品满18岁在线 | 97国产大学生情侣白嫩酒店 | 亚洲一区二区麻豆 | 国产精品成人av电影 | 国产视频午夜 | 探花视频在线观看免费版 | 91精品国产成人观看 | 亚洲最新在线视频 | 国产精品18久久久 | 丁香花五月 | 日韩a级黄色 | 999国产 | 国产高清在线精品 | 国产精品高潮久久av | 国产在线播放不卡 | 久久97久久97精品免视看 | 99视频在线精品国自产拍免费观看 | 中文字幕刺激在线 | 国产 精品 资源 | 国产精品久久久久久一区二区三区 | 五月天亚洲精品 | 日韩一区精品 | 日韩精品一区二区三区在线播放 | 97国产精品一区二区 | 夜夜躁日日躁狠狠久久av | 国产精品自产拍在线观看网站 | 97精品视频在线播放 | 国产999精品久久久影片官网 | 成人一区二区三区中文字幕 | 国产成人精品区 | 一区二区三区在线视频111 | 国产精品久久精品 | 91麻豆免费版 | 国产精品久久久区三区天天噜 | 黄色特级一级片 | 亚洲黄色区 | 99中文字幕视频 | 美女精品 | 最新影院 | 91av在线看| 黄色三级在线 | 亚洲精品456在线播放 | 国产精品日韩在线播放 | 久久视频热| 亚洲一区二区三区四区在线视频 | 精品主播网红福利资源观看 | 91九色视频国产 | 亚洲做受高潮欧美裸体 | 黄色网在线播放 | 成年人免费电影 | a黄色大片| 欧美99热 | 国产在线不卡一区 | 国内毛片毛片 | 国产精品一区二区av麻豆 | 最近久乱中文字幕 | 怡红院av久久久久久久 | 美女视频a美女大全免费下载蜜臀 | 99r在线播放| 久久综合久久综合这里只有精品 | 成人羞羞视频在线观看免费 | 91av九色 | 爱av在线网 | 精品在线视频一区二区三区 | 欧美日韩国产精品一区 | 激情婷婷色 | 久久老司机精品视频 | 黄色日批网站 | 在线观看一级视频 | 日韩免费视频网站 | 青春草免费在线视频 | 亚洲综合成人专区片 | 国产精品成人一区 | 久久久久久久久久久影院 | 色片网站在线观看 | 狠狠的操狠狠的干 | 综合久久综合久久 | 国产 精品 资源 | 狠日日| 男女视频91 | 国产伦理久久 | 亚洲国产精品一区二区尤物区 | 亚洲免费a | 91手机电视 | 国产成人精品av久久 | 91 在线视频播放 | 欧美日韩一级久久久久久免费看 | 一色av | 久久久久久久久久久久99 | av免费网站观看 | 日本久久成人中文字幕电影 | 国内精品久久天天躁人人爽 | 91网站在线视频 | 国产xxxx做受性欧美88 | 一区二区三区免费看 | 日韩精品免费在线观看 | 免费日韩一级片 | 国产亚洲片 | 在线一区电影 | 91精品国产高清自在线观看 | 国产一区视频在线观看免费 | 九九九九免费视频 | 玖玖视频精品 | 看片一区二区三区 | 国产在线精品国自产拍影院 | 国产999精品久久久影片官网 | 久久一本综合 | 国产一区二区播放 | 欧美人zozo | 国产精品久久久久久久久久久久久久 | 九九热在线视频免费观看 | 在线观看视频精品 | 久久精品1区 | 中文字幕 在线看 | 久久人人爽人人 | 日p视频在线观看 | 久草综合在线观看 | 日韩电影在线看 | 日韩免费看片 | 夜色资源站wwwcom | 中日韩三级视频 | 亚洲精品视频网址 | 国产成人精品综合久久久 | 国产粉嫩在线观看 | 黄色网免费| 婷婷亚洲激情 | 日韩精品无 | 日韩精品中文字幕有码 | 国产无区一区二区三麻豆 | 国产麻豆精品在线观看 | 国产一区二区在线免费播放 | 激情欧美一区二区免费视频 | 国产资源网 | 亚洲精品美女久久17c | 在线看v片成人 | 五月香视频在线观看 | 亚洲国产中文字幕在线视频综合 | 日本黄色大片免费 | 免费看片网页 | 天天色天天上天天操 | 四虎永久视频 | 二区视频在线观看 | 99精品国产一区二区 | 91福利国产在线观看 | 黄色大全免费网站 | 成人性生交视频 | 久久综合久久八八 | 日韩在线视频精品 | 日韩视频中文字幕在线观看 | 色www免费视频 | 探花视频在线观看 | 五月天.com| 天天舔天天搞 | 五月天亚洲婷婷 | 国产麻豆剧传媒免费观看 | 天天操天天操天天操 | 91亚·色| 在线亚洲免费视频 | 久久激情五月婷婷 | 四虎在线永久免费观看 | 久草网免费 | 午夜 在线 | 日韩欧美视频免费看 | 国产精品99久久久久久人免费 | www欧美xxxx| 成人av资源站 | 在线免费观看黄色av | a资源在线 | 国产又粗又硬又长又爽的视频 | 午夜视频免费在线观看 | 久久躁日日躁aaaaxxxx | 五月天堂色 | 亚洲va天堂va欧美ⅴa在线 | 91黄色在线看 | 久久精品美女视频 | 黄色在线免费观看网站 | 国产精品午夜8888 | 成人性生交大片免费看中文网站 | 麻豆免费视频观看 | 久久成人午夜 | 午夜精品久久久久久中宇69 | 精品影院 | 欧美男同视频网站 | 久久艹艹 | 91亚洲精 | 中文av网站 | av福利免费| 天天干天天想 | 六月丁香伊人 | 精品国产伦一区二区三区观看说明 | 91亚洲精品久久久中文字幕 | 欧美男女爱爱视频 | 中文字幕网站视频在线 | 欧美一区二区三区免费看 | 中文在线a√在线 | 国产福利91精品一区二区三区 | 欧美久久久久久久久久久 | 精品麻豆 | 久久免费看av| 久久精品视频网址 | 天天操夜夜叫 | 日本中文字幕网站 | 久草精品免费 | 91av在线免费观看 | 私人av | 69av国产| 欧美一区二区三区特黄 | 最新国产福利 | 91精品久久久久久粉嫩 | 久久爱资源网 | 国产精品久久久久av免费 | 成人h视频 | 99福利片 | 国产91精品一区二区麻豆亚洲 | 日韩电影久久 | 欧美日韩在线电影 | 亚洲最新视频在线播放 | 五月婷婷,六月丁香 | 最新av在线播放 | 久久精品一区二区三区中文字幕 | 久久免费电影 | 99久久爱 | 欧美日本在线视频 | 亚州日韩中文字幕 | 深爱开心激情网 | 国产精品一区二区美女视频免费看 | 中文字幕亚洲精品在线观看 | 91在线色 | 日韩一区二区免费在线观看 | 国产精品24小时在线观看 | 欧美日韩不卡在线观看 | 精品一区二区在线观看 | 国产日韩精品一区二区 | 国产精品久久电影网 | 国内成人精品2018免费看 | 成人av中文字幕在线观看 | 欧美日韩裸体免费视频 | 精品国产乱码久久 | 白丝av在线 | 国产精品视频在线观看 | 日韩综合一区二区三区 | 午夜视频99| 久久er99热精品一区二区三区 | 香蕉影视app| 欧美午夜一区二区福利视频 | 国产又粗又猛又色又黄网站 | 91精彩视频 | 五月天婷婷免费视频 | 国产在线超碰 | 免费看一级片 | 91麻豆精品国产91久久久无需广告 | 天天操天天操一操 | 国产一区视频在线 | 视频在线观看国产 | 日韩精品中文字幕一区二区 | 色综合五月 | 在线观看小视频 | 亚洲在线看 | 岛国精品一区二区 | 四虎影视www| 狠狠狠狠狠色综合 | 国产精品一区二区久久精品爱微奶 | 激情五月网站 | 婷婷久久精品 | 中文字幕在线人 | 三级a视频| 成人欧美日韩国产 | 国产中文字幕久久 | 久精品视频 | 青草草在线 | 久久精品首页 | 免费看黄在线网站 | 国产精品一区二区你懂的 | 超碰在线人人草 | 91网址在线 | 波多野结衣一区三区 | 久碰视频在线观看 | 国产精品毛片久久蜜 | 久久精品精品电影网 | 日韩欧美aaa | 欧美精品久久99 | 久久九九网站 | 最新av电影网站 | 福利视频一区二区 | 超碰在线最新地址 | 成人在线一区二区 | 国产视频不卡 | 玖玖在线免费视频 | av电影在线免费 | 日韩高清一区 | 8090yy亚洲精品久久 | 久久不卡国产精品一区二区 | 99视频在线观看免费 | 麻豆成人精品 | 欧美日韩视频一区二区 | 免费成人黄色 | 中文字幕在线国产 | 91精品麻豆 | 黄色小说在线免费观看 | 干av在线| 久久精品区 | 色综合色综合久久综合频道88 | 亚洲男人天堂a | 国产一级片网站 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 天天操夜夜摸 | 婷婷伊人网 | 亚洲欧美日韩在线看 | 日本中文字幕在线一区 | 国产成人综合在线观看 | 91麻豆免费视频 | 亚洲一区天堂 | 免费色视频 | 在线免费观看视频 | 精品久久久久国产免费第一页 | 欧美成年黄网站色视频 | 在线有码中文字幕 | 成人黄色免费在线观看 | 亚洲精品免费在线播放 | 久久1区 | 亚洲精品国产精品国自产在线 | 97精品伊人 | 色婷婷狠 | 久久国产精品久久久久 | 91精品无人成人www | 久久久久久久久久久国产精品 | 成人黄色在线视频 | 97福利在线 | 九九免费在线观看 | 欧美久久久久久久久中文字幕 | 91在线看片 | 综合色伊人 | av免费观看高清 | 午夜视频播放 | 亚洲国产中文字幕在线 | 91一区二区三区久久久久国产乱 | 美女在线观看网站 | 成年人黄色av | 久久亚洲私人国产精品va | 精品在线视频一区 | 在线成人看片 | 四虎国产视频 | 人人插人人做 | 国产高清 不卡 | 中文字幕中文中文字幕 | 天天做夜夜做 | 国产美女精品久久久 | 久久超碰99 | 国产在线观看你懂的 | 不卡的一区二区三区 | 日韩三级.com | 天天天干天天天操 | 色av网站 | 精品久久久久久久久久久久久久久久 | 草免费视频| 日精品| 91在线看视频 | 在线观av | 激情婷婷丁香 | 免费看片亚洲 | 午夜少妇一区二区三区 | 欧美一进一出抽搐大尺度视频 | 在线观看视频日韩 | 欧美精品午夜 | 日本护士三级少妇三级999 | 日韩欧美精品一区 | 久久免费视频4 | 国产黄a三级三级 | 在线观看亚洲精品 | 日韩欧美有码在线 | 国产精品综合久久久久久 | 欧美精品亚州精品 | 一区二区三区高清 | 精油按摩av | 欧美夫妻性生活电影 | 国产资源中文字幕 | 亚洲永久精品视频 | 亚洲婷婷在线视频 | 免费视频成人 | 免费高清在线观看电视网站 | 国产一区二区在线观看免费 | 久久永久视频 | 欧美一级xxxx | 91精品国| 国产精品成人一区二区 | 免费91麻豆精品国产自产在线观看 | av在线免费在线 | 免费观看不卡av | av在线之家电影网站 | 西西444www大胆高清图片 | 国产成人一区二 | 99色视频| 中文字幕在线影院 | 亚洲精品自拍视频在线观看 | 成年人在线视频观看 | 国产亚洲精品福利 | 天天操夜操视频 | 丁香六月婷婷开心婷婷网 | 久久99久久99精品免观看软件 | 一本色道久久综合亚洲二区三区 | 中文字幕之中文字幕 | 久久96国产精品久久99漫画 | 欧美成人精品欧美一级乱 | 又湿又紧又大又爽a视频国产 | 2021国产在线视频 | 亚洲视频电影在线 | 亚洲国产精品va在线看黑人 | 久久视频这里只有精品 | 人人射人人爽 | 日韩啪啪小视频 | 最新亚洲视频 | 日韩av看片 | 黄色中文字幕 | 福利视频网站 | 国产在线播放一区二区三区 | 91成人网页版 | 91麻豆精品国产自产在线游戏 | 国产精品久久一区二区无卡 | 久久国产精品免费一区二区三区 | 亚洲成人精品 | 色激情五月| 在线国产一区二区三区 | 黄色视屏免费在线观看 | www99精品 | 国产不卡在线播放 | 精品国产欧美一区二区三区不卡 | 欧美精品一区二区在线播放 | 四虎影视精品成人 | 久久日韩精品 | 亚洲欧美精品一区 | 久久精品91久久久久久再现 | 三级av片| 久久99久久99精品免观看软件 | 亚洲v欧美v国产v在线观看 | 国产专区精品视频 | av电影中文字幕 | 日韩一区二区三免费高清在线观看 | 国产午夜精品av一区二区 | 日本中文不卡 | 天天综合久久 | 免费看在线看www777 | av在线小说 | 在线免费视频你懂的 | 国产在线观看av | a天堂免费 | 久久人人精 | 欧美aa在线 | 一二三区视频在线 | 国产黄色一级片在线 | 毛片一区二区 | 又色又爽又黄高潮的免费视频 | 日韩一区二区三区观看 | 草久草久| 国产高清av免费在线观看 | 国产精品久久久久久久久软件 | 中文字幕黄色网址 | 成人午夜片av在线看 | 久久精品五月 | 国产一线天在线观看 | 综合网天天| 天天插天天干 | www.香蕉视频| 91在线视频在线观看 | 日韩精品久久久久久 | 精品国产一区二区三区久久久 | 精品视频久久久 | 天天操夜夜拍 | 婷婷久久久| 精品久久免费看 | 激情网婷婷 | 亚洲日本中文字幕在线观看 | 天天操天天干天天 | 色成人亚洲| 久久久精品欧美一区二区免费 | av天天澡天天爽天天av | 亚洲综合成人专区片 | 一本到视频在线观看 | 国产69精品久久久久久 | 综合激情网 | 成人av资源网站 | 91网址在线 | 国产日韩欧美综合在线 | 中文字幕日韩av | 超碰在线人人 | 天天射天天操天天干 | www免费视频com | 中文字幕中文字幕在线中文字幕三区 | 超碰人在线 | 国产黄色精品 | 久久伊人综合 | 国产精品麻豆视频 | 超碰九九| 亚洲精品在线观看不卡 | 久久久精品欧美一区二区免费 | 丝袜足交在线 | 婷婷六月久久 | 婷婷五月色综合 | 欧美va天堂在线电影 | 毛片网站观看 | 日韩欧美在线中文字幕 | 精品福利在线 | 日韩电影中文 | 久久99精品国产麻豆宅宅 | 亚洲成人xxx | 日韩免费在线网站 | 婷婷激情网站 | 麻豆一区二区 | 最近中文字幕mv免费高清在线 | 欧美午夜精品久久久久久浪潮 | 精品国偷自产国产一区 | 日韩一级黄色片 | 国产精品大片在线观看 | 亚洲国产成人在线 | 国产精品成人在线 | 亚洲精品麻豆 | 精品久久久久国产 | 99精品在线观看 |