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

首頁 > 編程 > JavaScript > 正文

JS的框架Polymer中的dom-if和is屬性使用說明

2019-11-20 11:58:06
字體:
來源:轉載
供稿:網友

我們經常會有根據某個屬性的取值來覺得模板渲染的需求,那就是最基本的分支語句。Angular 中有 ng-if 可以用,那么 Polymer 中當然也有 dom-if。其實 dom-if 是個很簡單的東西,它只是作為本篇話題的接入點,我想介紹的實際上是 is 這個屬性。
  dom-if 和之前介紹過的 dom-repeat 一樣,都是通過 is 屬性在 tempalte 元素上使用的,比如下面這個例子就是兩個模板根據一個綁定才控件上的布爾值來決定誰該被渲染
運行

<script> var Polymer = { dom: 'shadow' }; </script><base  /><link rel="import" href="polymer/polymer.html" /><dom-module id="demo-test"> <template>  <input type="checkbox" checked="{{checked::change}}">  <template is="dom-if" if="[[checked]]">true</template>  <template is="dom-if" if="[[!checked]]">false</template> </template> <script>  Polymer({   properties: {    checked: { value: false }   },   is: 'demo-test'  }); </script></dom-module><demo-test></demo-test>

  無論是 dom-if 還是之前的 dom-repeat,這些 is 屬性來指定的到底是什么呢?其實和 Angular 是一樣的,它們都是 Directive 的概念,只是 Polymer 不稱它為 Directive 而已。我們完全可以自己造一個這樣的東西出來,比如下面例子我們給 div 元素添加一個 is="demo-test" 的東西
運行

<script> var Polymer = { dom: 'shadow' }; </script><base  /><link rel="import" href="polymer/polymer.html" /><script> Polymer({  is: 'demo-test',  extends: 'div', <!-- 關鍵就在這里  ready: function(e) {   this.innerHTML = '我是一個 demo-test';  } });</script><div is="demo-test"></div>

  在定義時通過 extends 指定一個標簽名即可得到一個 is 指令。上面例子是一個最簡單的用法,我們可以自己創建 Shadow DOM 做自己想做的事了。實際上 Polymer 內置的 dom-repeat 和 dom-if 以及其他 dom-* 也都是如此定義的。但是這東西細看起來是非常復雜的,而我的文章只是入門級的東西,如果想知道更具體的用法就應該去看源碼(連官方文檔我也沒找到在哪兒定義)。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武川县| 呼图壁县| 富蕴县| 油尖旺区| 武川县| 准格尔旗| 曲靖市| 鲁山县| 临高县| 灵武市| 汝州市| 调兵山市| 江永县| 宝山区| 延寿县| 灵石县| 曲阳县| 曲阜市| 湖口县| 调兵山市| 黑龙江省| 昭平县| 南投县| 团风县| 乌鲁木齐市| 高邑县| 磐安县| 浮梁县| 华坪县| 呼伦贝尔市| 靖州| 林西县| 武穴市| 襄樊市| 金坛市| 和静县| 陵川县| 长乐市| 德州市| 左贡县| 山丹县|