国产探花免费观看_亚洲丰满少妇自慰呻吟_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-* 也都是如此定義的。但是這東西細看起來是非常復雜的,而我的文章只是入門級的東西,如果想知道更具體的用法就應該去看源碼(連官方文檔我也沒找到在哪兒定義)。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄陵县| 喀喇| 瑞安市| 天气| 林周县| 中山市| 镇巴县| 密山市| 林口县| 平江县| 靖边县| 二连浩特市| 依安县| 金沙县| 基隆市| 鄂温| 桑日县| 宁明县| 龙山县| 逊克县| 尼玛县| 塔河县| 湘潭市| 鄯善县| 镶黄旗| 白水县| 定州市| 南昌市| 寿光市| 乌拉特前旗| 楚雄市| 开封市| 博白县| 施秉县| 霍山县| 阳朔县| 收藏| 奎屯市| 扶余县| 昌宁县| 崇明县|