亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

JavaScript的Polymer框架中dom-repeat與VM的相關操作

2024-05-06 16:24:01
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了JavaScript的Polymer框架中dom-repeat與VM的相關操作,Polymer是由Ggoogle開發的Web UI相關框架,需要的朋友可以參考下

各種框架都有把一個列表數據綁定到 DOM 上的功能,比如 Angular 會用 ng-repeat 來綁定。那么 Polymer 呢?其實這個級別的功能屬于框架的擴展功能了,Angular 的 ng-repeat 也只是個 Directive 而已。Polymer 的 dom-repeat 也是這個級別的東西。

在 Polymer 中,一切都是 Directive 的概念。dom-module 用于定義模塊,它本身也是一個 Directive。dom-repeat 也是,但它不是一個標簽,而是一個基于 template 標簽的 Directive。我們可以這樣使用它:

運行

 

 
  1. <script> var Polymer = { dom: 'shadow' }; </script> 
  2. <base href="http://www.web-tinker.com/share/" /> 
  3. <link rel="import" href="polymer/polymer.html" /> 
  4.  
  5. <dom-module id="demo-test"
  6. <template> 
  7. <ul> 
  8. <template is="dom-repeat" items="[[data]]"
  9. <li> 
  10. 第 <strong>[[index]]</strong> 項, 
  11. 值為 <strong>[[item]]</strong> 
  12. </li> 
  13. </template> 
  14. </ul> 
  15. </template> 
  16. <script> 
  17. Polymer({ 
  18. is: 'demo-test'
  19. properties: { 
  20. data: { 
  21. type: Array, 
  22. value: [ 'a''b''c''d' ] 
  23. }); 
  24. </script> 
  25. </dom-module> 
  26.  
  27. <demo-test></demo-test> 

上面的代碼對某個 template 元素設置 is 屬性為 dom-repeat,于是這個 template 元素內的東西就被循環了。這個循環根據在 template 元素上提供的 items 屬性來遍歷。注意 items 必須是數組,雖然用起來可能有點不太方便,但我覺得這個限制是一個非常好的做法。避免了像 Angular 那樣使用 for-in 去遍歷導致的各種問題。

items 的每一項,其索引和值會被放入 index 和 item 這兩個屬性中供 template 內的模板使用,于是上面的例子就輸出了給定的索引和值。

然而 Polymer 的數據更新并不是基于臟數據比對,所以數據的動態更新可能就有點麻煩。比如我們有一個按鈕,每次點擊要增加一項的話應該這么寫

運行

 

 
  1. <script> var Polymer = { dom: 'shadow' }; </script> 
  2. <base href="http://www.web-tinker.com/share/" /> 
  3. <link rel="import" href="polymer/polymer.html" /> 
  4.  
  5. <dom-module id="demo-test"
  6. <template> 
  7. <input placeholder="請輸入內容" value="{{value::input}}" /> 
  8. <button on-click="append">添加一項</button> 
  9. <ul> 
  10. <template is="dom-repeat" items="[[data]]"
  11. <li> 
  12. 第 <strong>[[index]]</strong> 項, 
  13. 值為 <strong>[[item]]</strong> 
  14. </li> 
  15. </template> 
  16. </ul> 
  17. </template> 
  18. <script> 
  19. Polymer({ 
  20. is: 'demo-test'
  21. properties: { 
  22. data: { 
  23. type: Array, 
  24. value: [ 'a''b''c''d' ] 
  25. }, 
  26. append: function() { 
  27. // data.push(this.value); // 這么寫是不行的 
  28. this.push('data'this.value) 
  29. }); 
  30. </script> 
  31. </dom-module> 
  32.  
  33. <demo-test></demo-test> 

之前我們說過,Polymer 會將需要監控變化的數據作為一個訪問器屬性來設置,但如果改變數組的元素,實際上并沒有對數組本身有任何改動。當我們把一個數組賦值給 VM 時實際上是把元素復制過去,而不是把數組對象丟過去。也就是說,這個數組對象并不直接是 VM 的引用,操作這個數組對象是無法影響 VM 的,所以直接對數組做 push 只是對數據的 push。

雖然數組自己的 push 方法無法操作 VM,但 Polymer 自己也提供了一些直接操作 VM 的方法,比如上面例子中的 this.push 就是 Polymer 提供的。它的操作模板不是一個對象,而是 VM 上的一個訪問路徑(比如上面例子中 push 的第一個參數 'data' 就是 VM 中 data 訪問路徑)。

除了 push 之外還有 pop、shift 等一些類似原生方法的操作(但要注意他們不是元素方法)。雖然操作起來確實不太方便,但也不至于到惡心的程度,反正我是勉強能接受的。

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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久亚洲| 国产亚洲欧美视频| 成人夜晚看av| 亚洲全黄一级网站| 国产精品久久久久久久久久| 97色在线观看免费视频| 久久久亚洲影院你懂的| 一区二区国产精品视频| 91高清免费视频| 久久综合国产精品台湾中文娱乐网| 欧美激情第一页xxx| 日韩视频亚洲视频| y97精品国产97久久久久久| 国产精品丝袜一区二区三区| 美女999久久久精品视频| 亚洲激情在线观看| 国产精品久久久久久久久久久不卡| 久久久免费精品视频| 51ⅴ精品国产91久久久久久| 国产精品你懂得| 北条麻妃一区二区三区中文字幕| 一本色道久久88综合日韩精品| 精品国产999| 色综合色综合网色综合| 91免费在线视频| 久久深夜福利免费观看| 91久久中文字幕| 91精品久久久久久久久不口人| 精品成人av一区| 国产成人一区二区在线| 亚洲新声在线观看| 国产精品视频久久| 91在线网站视频| 国产免费一区二区三区在线观看| 国产这里只有精品| 久精品免费视频| 日韩精品高清在线观看| 555www成人网| 青青久久av北条麻妃黑人| 国产91成人video| 国产亚洲免费的视频看| 欧美日韩国产色| 国产91久久婷婷一区二区| 午夜精品久久久久久久久久久久| 久久久久这里只有精品| 国内精品久久久久久| 亚洲国产精品一区二区三区| 岛国精品视频在线播放| 成人国产精品久久久| 久久理论片午夜琪琪电影网| 成人信息集中地欧美| 欧美高清理论片| 国内精品小视频在线观看| 成人精品一区二区三区电影免费| 成人免费淫片视频软件| 欧美wwwxxxx| 亚洲精品久久久久久久久| 欧美性猛交xxxx黑人猛交| 欧美一级成年大片在线观看| 91av在线影院| 亚洲男人的天堂在线| 日韩成人在线免费观看| 日韩av在线网页| 亚洲少妇中文在线| 国产在线高清精品| 2020国产精品视频| 国产精品日韩电影| 日本久久久久久久久久久| 久久婷婷国产麻豆91天堂| 曰本色欧美视频在线| 欧美成人午夜剧场免费观看| 国产欧美一区二区三区四区| 91伊人影院在线播放| 亚洲人高潮女人毛茸茸| 精品国产一区二区三区四区在线观看| 伊人久久久久久久久久久| 国产精品扒开腿做| 在线成人激情视频| 亚洲色图五月天| 久久久久久久久久国产精品| 国内精品国产三级国产在线专| 成人亚洲欧美一区二区三区| 日本一欧美一欧美一亚洲视频| 97视频在线观看亚洲| 亚洲色图在线观看| 亚洲第一精品久久忘忧草社区| 青青a在线精品免费观看| …久久精品99久久香蕉国产| www.日韩av.com| 91在线观看免费| 精品国产美女在线| 国产一区二区香蕉| 在线观看亚洲区| 欧美成人激情在线| 精品国内产的精品视频在线观看| 国产精品亚洲网站| 久久艹在线视频| 中文一区二区视频| 久久人人爽人人| 国产精品美女视频网站| 色综合天天综合网国产成人网| 国产亚洲欧洲高清一区| 欧美日韩在线影院| 91精品国产亚洲| 国产午夜精品全部视频播放| 日韩在线视频二区| 亚洲精品久久久久中文字幕二区| 日韩中文字幕在线视频| 欧美自拍视频在线| 日韩成人中文电影| 欧美综合在线第二页| 91深夜福利视频| 亚洲人午夜精品免费| 精品日本高清在线播放| 69av在线播放| 中文字幕亚洲自拍| 国产精品久久久久久久av大片| 色播久久人人爽人人爽人人片视av| 亚洲欧美国产va在线影院| 国产精品一区二区3区| 国产日韩欧美视频在线| 亚洲精品国精品久久99热| 亚洲免费精彩视频| 欧美成人精品一区二区| 国产精品久久久久影院日本| 中文日韩在线视频| 欧美最猛黑人xxxx黑人猛叫黄| 国产精品极品美女在线观看免费| 亚洲欧美国产一本综合首页| 国产精品极品美女在线观看免费| 精品国产自在精品国产浪潮| 成人免费激情视频| 亚洲国产精品va在线观看黑人| 91九色在线视频| 欧美丰满少妇xxxxx做受| 亚洲第一色在线| 国产视频亚洲精品| 亚洲午夜av电影| 欧美日韩国产成人| 成人免费在线视频网站| 亚洲第一福利在线观看| 性欧美xxxx交| 欧美高清电影在线看| 亚洲va国产va天堂va久久| 91精品久久久久久久久中文字幕| 尤物九九久久国产精品的特点| 在线看欧美日韩| yw.139尤物在线精品视频| 欧美激情视频免费观看| 91av视频导航| 综合激情国产一区| 亚洲情综合五月天| 欧美激情在线一区| 亚洲电影免费观看高清完整版在线| 国产日韩欧美视频在线| 亚洲国产精品99| 欧美日韩国产成人| 国产精品偷伦一区二区| 亚洲精品乱码久久久久久按摩观| 亚洲男女自偷自拍图片另类| 午夜精品久久久久久久久久久久| 亚洲免费av电影| 国产福利精品av综合导导航| 亚洲97在线观看|