国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的寫法

2024-05-06 15:15:10
字體:
來源:轉載
供稿:網友

“對呀對呀!……回字有四樣寫法,你知道么?”,當時魯大大如此諷刺孔乙己,意味著老孔這個被科舉制毒害的人注意此種無用之物實在可悲。但是在Angular 2的世界中,很少存在無用之物,ngModel有三種寫法,你知道嗎?

表單的設計永遠都是應用的重頭戲,而其中最基本的功能點即是通過一個個輸入組件實現的,為此Angular 2為我們提供了鋒利的武器:ngModel。而其不同的使用方式有著大不相同的作用:

ngModel

如果單獨使用ngModel,且沒有為其賦值的話,它會在其所在的ngForm.value對象上添加一個property,此property的key值為ngModel所在組件設置的name屬性的值:

<form novalidate #f="ngForm"> <input type='text' name='userName' placeholder='Input your userName' ngModel></form><p> {{ f.value | json }} // { "userName": "" }</p>

此時需要注意的是,單獨使用ngModel時,如果沒有為ngModel賦值的話,則必須存在name屬性。

也就是說,單獨ngModel的作用是通知ngForm.value,我要向你那里加入一個property,其key值是組件的name屬性值,其value為空字符串。

[ngModel]

可是,如果想向ngForm中添加一個有默認值的property需要怎么做呢?這時就需要使用單向數據綁定的格式了,也就是[ngModel]:

this.model = { userName: 'Casear'};<form novalidate #f="ngForm"> <input type='text' name='userName' placeholder='Input your userName' [ngModel]='model.userName'></form><p> {{ f.value | json }} // { "userName": "Casear" } {{ model | json }}  // { "userName": "Casear" },不會隨著f.value的變化而變化</p>

這里我們使用了單向數據綁定的特點,可以為ngForm.value添加一個帶有初始值的property。

注意單向數據綁定的特點,此時在表單輸入框中做的任何改變都不會影響model中的數據,也就是說this.model.userName不會隨著輸入框的改變而改變。不過輸入框改變會體現在f.value中。

[(ngModel)]

上述的單向數據綁定在單純地提供初始值很有用,不過總是有些場景需要將用戶輸入體現在我們的model上,此時就需要雙向數據綁定了,也即[(ngModel)]:

this.model = { userName: 'Casear'};<form novalidate #f="ngForm"> <input type='text' name='userName' placeholder='Input your userName' [(ngModel)]='model.userName'></form><p> {{ f.value | json }} // { "userName": "Casear" } {{ model | json }}  // { "userName": "Casear" },會隨著f.value的變化而變化</p>

這里我們不僅為ngForm.value添加了一個帶有初始值的property,還能實現Model和View層的聯動,盡管這種方式可能并不好,但是在某些情況下也不失為一種簡便的方案。

關于[(ngModel)]的內部邏輯可查看Angular 2 父子組件數據通信。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 惠安县| 平邑县| 新竹县| 大石桥市| 平安县| 河池市| 霍山县| 富顺县| 荃湾区| 东阿县| 湖南省| 志丹县| 屏南县| 湖南省| 五家渠市| 泉州市| 友谊县| 黔西| 乐至县| 寻甸| 神池县| 乌恰县| 景德镇市| 北票市| 金山区| 泾源县| 大安市| 车致| 郴州市| 鄯善县| 增城市| 兴安盟| 文登市| 双峰县| 黔南| 富宁县| 兰溪市| 漳州市| 开阳县| 舒城县| 绥德县|