在iview的Table中添加Select(render)

首先對Render進行分析,在iview官方的文檔中,找到了table插入Button的例子:

?

[javascript]?view plaincopy
  1. {??
  2. title:?'Action',??
  3. key:?'action',??
  4. width:?150,??
  5. align:?'center',??
  6. render:?(h,?params)?=>?{??
  7. ????return?h('div',?[??
  8. ????????h('Button',?{??
  9. ????????????props:?{??
  10. ????????????????type:?'primary',??
  11. ????????????????size:?'small'??
  12. ????????????},??
  13. ????????????style:?{??
  14. ????????????????marginRight:?'5px'??
  15. ????????????},??
  16. ????????????on:?{??
  17. ????????????????click:?()?=>?{??
  18. ????????????????????this.show(params.index)??
  19. ????????????????}??
  20. ????????????}??
  21. ????????},?'View'),??
  22. ????????h('Button',?{??
  23. ????????????props:?{??
  24. ????????????????type:?'error',??
  25. ????????????????size:?'small'??
  26. ????????????},??
  27. ????????????on:?{??
  28. ????????????????click:?()?=>?{??
  29. ????????????????????this.remove(params.index)??
  30. ????????????????}??
  31. ????????????}??
  32. ????????},?'Delete')??
  33. ????]);??
  34. }??

這是Table的表頭定義中的一段,意思是創建兩個按鈕,一個名為View,一個名為Delete,在疑惑h是什么的時候,看到網上一哥們的回答頓時茅廁頓開,問題地址,render參數中h可以看做是 createElement。可以看出上面的例子大概表現為一個div中包含兩個Button,又根據生成Button的結構可以把這段代碼簡化一下,寫為:

?

?

[javascript]?view plaincopy
  1. render:?(h,?params)?=>?{??
  2. ????return?h('Button',?{??
  3. ????????????props:?{??
  4. ????????????????type:?'primary',??
  5. ????????????????size:?'small'??
  6. ????????????},??
  7. ????????????style:?{??
  8. ????????????????marginRight:?'5px'??
  9. ????????????},??
  10. ????????????on:?{??
  11. ????????????????click:?()?=>?{??
  12. ????????????????????this.show(params.index)??
  13. ????????????????}??
  14. ????????????}??
  15. ????????},?'View'),??
  16. ????);??
  17. }??

在學vue的時候,有看到父組件和子組件之間的交互使用了props,我們在iview的文檔中,看到Button的API包括type、size,由此可知,props可以直接聲明子組件的API值內容,on中寫的自然就是它的觸發事件了。

?

好,現在開始寫Table組件中的Select組件:

?

[javascript]?view plaincopy
  1. render:?(h,?params)?=>?{??
  2. ????return?h('Select',?{??
  3. ????????props:{??
  4. ????????????value:?this.data[params.index].volumeType,??
  5. ????????},??
  6. ????????on:?{??
  7. ????????????'on-change':(event)?=>?{??
  8. ????????????????this.data[params.index].volumeType?=?event;??
  9. ????????????}??
  10. ????????},??
  11. ????},??
  12. ????[??
  13. ????????h('Option',{??
  14. ????????????props:?{??
  15. ????????????????value:?'1'??
  16. ????????????}??
  17. ????????},'option1'),??
  18. ????????h('Option',{??
  19. ????????????props:?{??
  20. ????????????????value:?'2'??
  21. ????????????}??
  22. ????????},'option2')??
  23. ????]??
  24. ????);??
  25. },??

可以看到效果:

?

好,現在我們實現了基本的渲染。現在我們實現動態改變option的內容,與組件的data結合起來,畢竟當數據量大的時候,總不能一個一個的寫上去。

觀察render的第三個參數為一個對象數組,我們可不可以使用便利數據數組的方式生成呢?(廢話)

直接上代碼,在數組的地方寫入:

?

[javascript]?view plaincopy
  1. this.volumeTypes.map(function(type){??
  2. ????return?h('Option',?{??
  3. ????????props:?{value:?type}??
  4. ????},?type);??
  5. })??


其中,this.volumeTypes就是我們的列數據,當然,這是最基本的綁定的寫法,如果想使用對象數組,自行研究,很easy的~

?

這是我們的最終結果:

?

[javascript]?view plaincopy
  1. {??
  2. ????title:?'卷類型',??
  3. ????key:?'volumeType',??
  4. ????align:?'center',??
  5. ????render:?(h,?params)?=>?{??
  6. ????????return?h('Select',?{??
  7. ????????????props:{??
  8. ????????????????value:?this.data[params.index].volumeType,??
  9. ????????????},??
  10. ????????????on:?{??
  11. ????????????????'on-change':(value)?=>?{??
  12. ????????????????????this.data[params.index].volumeType?=?value;??
  13. ????????????????}??
  14. ????????????},??
  15. ????????},??
  16. ????????this.volumeTypes.map(function(type){??
  17. ????????????return?h('Option',?{??
  18. ????????????????props:?{value:?type}??
  19. ????????????},?type);??
  20. ????????})??
  21. ????????);??
  22. ????},??
  23. },????


end。

轉載于:https://www.cnblogs.com/liubingboke/p/8745518.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251999.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251999.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251999.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript中call和apply方法

1 /*2 在js中 call和apply常用于綁定作用域3 */4 //1 簡單的綁定5 function sum(a,b){6 return ab;7 }8 //將sum的功能綁定給test2來執行9 function test2(a,b){ 10 return sum.call(this,a,b); 11 } 12 // call 和apply的區別是 apply接收數組作為參數…

工業機械人運動學正逆解,簡單粗暴!!!!!!

ur機械臂是六自由度機械臂,由D-H參數法確定它的運動學模型,連桿坐標系的建立如上圖所示。 轉動關節θi是關節變量,連桿偏移di是常數。 關節編號 α(繞x軸) a(沿x軸) θ(繞z軸&am…

python opencv立體測距 立體匹配BM算法

立體標定應用標定數據轉換成深度圖標定 在開始之前,需要準備的當然是兩個攝相頭,根據你的需求將兩個攝像頭進行相對位置的固定,我是按平行來進行固定的(如果為了追求兩個雙目圖像更高的生命度,也可以將其按一定鈍角固…

對于python 作用域新的理解

今天看Python習題,看到如下題目 def num():return [lambda x: i*x for i in range(4)] print([m(2) for m in num()])  # 求輸出結果是什么 我看了半天才明白這應該是一個列表生成式,列表中的元素為四個匿名函數,我本以為每個匿名函數應該是…

Vue基礎學習(一)------內部指令

一.v-if v-else v-show 指令 1.v-if v-if:是vue 的一個內部指令,指令用在我們的html中,用來判斷是否加載html的DOM 現在舉個栗子,判斷用戶的登錄操作,用isLogin作為一個判斷字段,登錄成功,就顯示用戶的名稱 代碼&…

【bzoj3555】[Ctsc2014]企鵝QQ 簡單哈希

傳送門 題目分析 題意即求有多少對字符串只相差一個字符,枚舉刪除每個字符后的哈希, 看有多少相等即可。 比如有如下字符串:$Sd123$,其中S部分的哈希值為H,刪除的是d,則原字符串的哈希值為$$(((H * T d) *…

StereoRectify()函數定義及用法畸變矯正與立體校正

畸變矯正是上一篇博文的遺留問題,當畸變系數和內外參數矩陣標定完成后,就應該進行畸變的矯正,以達到消除畸變的目的,此其一。 在該系列第一部分的博文中介紹的立體成像原理中提到,要通過兩幅圖像估計物點的深度信息&a…

死磕 java集合之TreeMap源碼分析(三)- 內含紅黑樹分析全過程

2019獨角獸企業重金招聘Python工程師標準>>> 歡迎關注我的公眾號“彤哥讀源碼”,查看更多源碼系列文章, 與彤哥一起暢游源碼的海洋。 刪除元素 刪除元素本身比較簡單,就是采用二叉樹的刪除規則。 (1)如果刪除的位置有兩…

Linux:進程實例信息(/proc)

https://blog.csdn.net/test1280/article/details/73632333 Linux:進程實例信息(/proc) 問幾個問題: 1.怎么知道一個進程對應哪個可執行文件? 2.怎么知道一個進程的資源限制? 3.怎么知道一個進程所處的環境&#xff1f…

四元素理解

旋轉變換_四元數 2017年03月29日 11:59:38 csxiaoshui 閱讀數:5686 1.簡介 四元數是另一種描述三維旋轉的方式,四元數使用4個分量來描述旋轉,四元數的描述方式如下: qsxiyjzk,(s,x,y,z∈?)i2j2k2ijk?1 四元數的由…

31、SAM文件中flag含義解釋工具--轉載

轉載:http://www.cnblogs.com/nkwy2012/p/6362996.html SAM是Sequence Alignment/Map 的縮寫。像bwa等軟件序列比對結果都會輸出這樣的文件。samtools網站上有專門的文檔介紹SAM文件。具體地址:http://samtools.sourceforge.net/SAM1.pdf很多人困惑SAM文…

《Head First設計模式》批注系列(一)——觀察者設計模式

最近在讀《Head First設計模式》一書,此系列會引用源書內容,但文章內容會更加直接,以及加入一些自己的理解。 觀察者模式(有時又被稱為模型-視圖(View)模式、源-收聽者(Listener)模式或從屬者模式&#xff…

PYPL 4 月排行:Python 最流行,Java 還行不行?

開發四年只會寫業務代碼,分布式高并發都不會還做程序員? PYPL 發布了 4 月份的編程語言排行榜。 前五的分別是:Python、Java、Javascript、C# 和 PHP。可以看到,榜單沒有什么大變化,但是相比去年 4 月份,…

兩個向量的旋轉矩陣與四元素

兩向量的夾角 2017年06月20日 17:38:11 csxiaoshui 閱讀數:36764 怎么計算兩個向量間的夾角呢? 這里主要分兩種情況,對于二維向量和三維向量來分別討論。 1. 二維向量 二維向量的情況相對簡單,根據向量間的點乘關系 v1?v2|…

順序表

一、數據是如何在內存中存儲的? 32位系統中char,int型數據在內存中的存儲方式: char占1byte(8bit)int占4byte(32bit)假設我們有一個int類型的值,它從0x01開始,一個int占據…

Establishing SSL connection without server's identity verification is not recommended.

完全描述:Establishing SSL connection without servers identity verification is not recommended. According to MySQL 5.5.45, 5.6.26 and 5.7.6 requirements SSL connection must be established by default if explicit option isnt set. For compliance with existing …

四元素的真面目..........簡單粗暴

作者:Yang Eninala 鏈接:https://www.zhihu.com/question/23005815/answer/33971127 來源:知乎 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。 根據我的理解,大多數人用漢密爾頓四元數就只…

2.自定義變量調節器

① 使用registerPlugin()方法來擴充變量調節器 該方法接收3個參數 1. 字符串modifier 2. 插件函數的名字 3. PHP回調函數 示例:自定義一個變量調節器,可以改變文字的顏色和大小 第一步:調用smarty對象的registerPlugin(&#x…

SpringBoot2構建基于RBAC權限模型的駕校代理小程序后端

本項目是使用SpringBoot2構建的一套基于RBAC權限模型的后臺管理系統,前端是微信小程序。 項目地址: github.com/fuyunwang/D… 項目的緣由 最近接了個外包,主要是針對于駕校開發一個代理小程序。目的是為了方便駕校的管理來招攬學員,同時方便維護學員和代理信息。 項…

while read line的問題

循環中的重定向或許你應該在其他腳本中見過下面的這種寫法&#xff1a;while read linedo…done < file剛開始看到這種結構時&#xff0c;很難理解< file是如何與循環配合在一起工作的。因為循環內有很多條命令&#xff0c;而我們之前接觸的重定向都是為一條命令工作的。…